Overview

The Jito Restaking and Vault Programs manage the relationships between vaults, NCNs (Node Consensus Networks), and operators. The Vault Program is responsible for handling deposits, tokenized stake, and delegation, while the Restaking Program facilitates the interactions between NCNs, operators, and vaults.

This documentation provides an in-depth look at the components and interactions between these entities, as represented by the following diagrams.

1. Vault Program and Restaking Program Interaction

flowchart LR
    
    classDef main fill:#AAA,stroke:#333,stroke-width:2px;
    classDef ticket fill:#595,stroke:#333,stroke-width:1px,font-size:10;
    
    subgraph Vault Program
        Vault(Vault):::main
        VaultNcnTicket([VaultNcnTicket]):::ticket
    end
    
    subgraph Restaking Program
        NCN(NCN):::main
        NcnVaultTicket([NcnVaultTicket]):::ticket
    end
    
    %% Vault Program Links
    Vault -->|Creates| VaultNcnTicket
    VaultNcnTicket -->|Activated through warmup| NCN
    VaultNcnTicket -.->|Deactivated through cooldown| NCN

    %% Restaking Program Links
    NCN -->|Creates| NcnVaultTicket
    NcnVaultTicket ---> |Links| Vault

Scalable SVG image https://mermaid.ink/svg/pako:eNqFUl1rwjAU_SshQ3Bgx5z4sAhC0UeR4cYetu4hS25taJuUJF3drP996YdirWOBhNx7z8k595I9ZooDJjhMVMEiqi1abQKJ3GpOllBjlhCilAqJQpEk5Mb3_ZGxWsVAbiaTSXv3CsFtRB6y3eyCagWLwbbk6eP0b_I4241CJa1nxA-Q8f3s3IrJP7eaZhF6pXli0ZNWLkybWrXq9LA-bwkhleGL4prJl9rL8L0bf1SExmZDAcmvSm_AWBoLue3Lrxfrodt9aadSqx2lu_F_0oNBt1-0EjI2Ta0peN68XGigFkx50ecZ7JSr8T6z4ssxOLKRVvk2QgXVaZ6VVRvXWXeOtgTaIzKlEq4K2VJPrnujOnfuoF3f3aG0oE7O4b05KutH2j7xCKeg3bS5-8H7ihRgG0EKASbuyiGsUAEO5MFBaW7V87dkmFidwwjX9jEJaWJclGfcOVkKWlk9ZTMq35Q6xodf170M6g

Explanation

2. NCN and Operator Mutual Opt-in Process

flowchart LR

    classDef main fill:#AAA,stroke:#333,stroke-width:2px;
    classDef ticket fill:#595,stroke:#333,stroke-width:1px,font-size:10;

    subgraph Restaking Program
        NCN[NCN]:::main
        Operator[Operator]:::main
        NcnOperatorState[NcnOperatorState]:::ticket
    end
    
    NCN -->|Registers| NcnOperatorState
    Operator -->|Opts in| NcnOperatorState

    NcnOperatorState -->|Mutual opt-in| Operator

Scalable SVG image https://mermaid.ink/svg/pako:eNp1UU1vwjAM_StRuLbSGOKwIE1C47jBBLfRHbzWbSPSJEocwQb896W03STYLCWyn9_zR3LkuSmQC14qs89rcMSe15nONIuWK_B-gSVrQGpWSqXEaD6fJ56c2aEYTSaT3k_3sqBa3NvD7EpKMt8h9eLpw_R_8dgektJoSr38QjG-mw1j-PBRObA1W6Mn2EldsVdnItR0-daWT8ttPO9CiHbY38TKogMybjs4t5RlrofkhoBwew20km6PToS66Jzujn1Zmj6e1lhJT-j86aZkRxygC3tlyTOp_-L2Za_wi-olUADFjKW01Q4EnvAGXVyriF95bPUZpxobzLiIboElBEUZz_Q5UiGQ2XzqnAtyARPuTKhqLkpQPkbBFrHbQkL7wj-oBf1mzBCfvwHHqr9X

Explanation

3. Vault Delegation to Operators

flowchart LR

    classDef main fill:#AAA,stroke:#333,stroke-width:2px;
    classDef ticket fill:#595,stroke:#333,stroke-width:1px,font-size:10;

    subgraph Vault Program
        Vault[Vault]:::main
        VaultOperatorDelegation[VaultOperatorDelegation]:::ticket
    end

    subgraph Restaking Program
        Operator[Operator]:::main
        OperatorVaultTicket[OperatorVaultTicket]:::ticket
    end
    
    %% Vault Program Links
    Vault -->|Creates| VaultOperatorDelegation
    VaultOperatorDelegation -->|Delegates stake| Operator

    %% Restaking Program Links
    Operator -->|Creates| OperatorVaultTicket
    OperatorVaultTicket -->|Links| Vault

    %%%% Cross-Program Links
    Vault -.->|Opts in| Operator
    Vault -.->|Delegates stake to| Operator

Scalable SVG image https://mermaid.ink/svg/pako:eNp1k99vgjAQx_-VpotvsMwZH1aTJUYfTVzcsofBHjo4oAFa0pbopv7vKwUUQfrQ9O57Pz53hCMORAiY4CgT-yChUqPNzuc-R-YEGVVqDRHKKeMoYllGHpbLpaO0FCmQh9ls1rzdPQt1Qp6Lw6KXqlmQgm6S5y_z8eRpcXAiwbWr2B-Q6dOixVDlTyxpkaBPWmYavUlhzLzWqmPdnr2_CSEVbE_cFiCpFnINGcRUM8G9EX9VoEauSwAPBxg7UJqmjMdDlLag1z6GQK1iAT5sK--O7y5I9ajvyeR2G2jDeKpqrRZc9_W0kkA1qNPYFjrxQ9FWaExQqJoZThf8disGZLCPLkwbf8tzZ-Db8I5gM23FZo5ra9N8JYVS7vgWHk3yttAKMd6F70X0xkRaXIOxg3OQ5iOG5jc5Vqk-1gnk4GNiniFEFgr7_GxCaanF-y8PMNGyBAdLUcYJJhHNlLHKIjRd1oxWtBdvQfmXEK19_gdpiDj9