overview· xtz deposits· fa deposits· xtz withdrawals· xtz fast withdrawals· fa withdrawals· design
Bridge indexing · fast withdrawal

XTZ fast withdrawals

flowchart TD
  subgraph MICH["L2 · MICHELSON"]
    direction TB
    NAC["Call gateway.call_evmTzKT · transaction · gateway"]:::mich
  end

  subgraph EVM["L2 · EVM"]
    direction TB
    FW["Call XTZBridge.fast_withdraw_base58Blockscout · transaction · 0xff…01"]:::evm
    EV["Event FastWithdrawalBlockscout · event · 0xff…01✓ etherlink.on_xtz_withdraw✚ EtherlinkWithdrawOperation"]:::evm
    FW --> EV
  end

  subgraph KER["ROLLUP / KERNEL"]
    direction TB
    SOM["Call SendOutboxMessageBlockscout · transaction · 0xff…03"]:::sys
    OUT["Rollup outbox messagerollup_node · outbox · rollup✓ rollup_message_index"]:::sys
    SOM --> OUT
  end

  subgraph L1["L1 · MICHELSON"]
    direction TB
    CEM["Rollup cementTzKT · transaction · rollup✓ tezos.on_cement_commitment✚ RollupCementedCommitment"]:::l1
    EXE["Rollup executeTzKT · transaction · rollup✓ tezos.on_rollup_execute✎ TezosWithdrawOperation"]:::l1
    WD["Call ticketer.withdrawTzKT · transaction · tez-ticketer"]:::l1
    PAY["Call FastWithdrawal.payoutTzKT · transaction · FastWithdrawal✓ etherlink.on_fast_withdrawal_claimed✎ TezosWithdrawOperation"]:::l1
    SP(["Service Provider"]):::actor
    WT(["Watchtower"]):::actor
    CEM --> EXE
    EXE --> WD
  end

  NAC -->|NAC| FW
  EV --> SOM
  OUT -.->|⏳ ~14 days · refutation window| CEM
  EV -.->|SP saw the event| SP
  SP -->|instant payout| PAY
  WD -->|refund · after ~14 days| SP
  WT --> EXE

  class EV indexed
  class OUT indexed
  class CEM indexed
  class EXE indexed
  class PAY indexed
  class NAC faded
  class FW faded
  class SOM faded
  class WD faded
  class SP faded
  class WT faded

  classDef l1 fill:#e8836b1f,stroke:#e8836b,stroke-width:1.5px;
  classDef evm fill:#5aa6e01f,stroke:#5aa6e0,stroke-width:1.5px;
  classDef mich fill:#6fbf731f,stroke:#6fbf73,stroke-width:1.5px;
  classDef ker fill:#d9a83c21,stroke:#d9a83c,stroke-width:1.5px;
  classDef sys fill:#8b919c1f,stroke:#8b919c,stroke-width:1.5px;
  classDef actor fill:transparent,stroke:#e8836b,stroke-width:1.5px;
  classDef indexed stroke-width:2px;
  classDef faded stroke-width:1.5px;

  linkStyle 0 stroke:#5aa6e0,stroke-width:2.4px;
  linkStyle 1 stroke:#8b919c,stroke-width:2.4px;
  linkStyle 2 stroke:#e8836b,stroke-width:2.4px;
  linkStyle 3 stroke:#e8836b,stroke-width:2.4px;
  linkStyle 4 stroke:#6fbf73,stroke-width:2.4px;
  linkStyle 5 stroke:#5aa6e0,stroke-width:2.4px;
  linkStyle 6 stroke:#8b919c,stroke-width:2.4px,stroke-dasharray:6 5;
  linkStyle 7 stroke:#e8836b,stroke-width:2.4px,stroke-dasharray:6 5,opacity:0.55;
  linkStyle 8 stroke:#e8836b,stroke-width:2.4px;
  linkStyle 9 stroke:#e8836b,stroke-width:2.4px;
  linkStyle 10 stroke:#e8836b,stroke-width:2.4px;
    
Legend
Hue L2 Michelson L2 EVM Kernel / outbox L1 rollup / SP
Decision indexed not indexed
Status ⏳ ~14 days refutation window actor (off-chain) · capsule