bridge indexing · withdrawal
XTZ withdrawals · standard
flowchart TD
subgraph MICH["L2 · MICHELSON"]
direction TB
USER_M(["User"]):::actor-mich
NAC["Call Gateway.call_evmTzKT · transaction · Gateway"]:::mich
USER_M -->|xtz| NAC
end
subgraph EVM["L2 · EVM"]
direction TB
USER_E(["User"]):::actor-evm
WB["Call XTZBridge.withdraw_base58EVM node · transaction · 0xff…01"]:::evm
EV["✓Event WithdrawalEVM node · event · 0xff…01✓ etherlink.on_xtz_withdraw✚ EtherlinkWithdrawOperation"]:::evm
USER_E -->|xtz| WB
WB --> EV
end
subgraph KER["ROLLUP / KERNEL"]
direction TB
SOM["Call SendOutboxMessageKernel · precompile · 0xff…03"]:::sys
OUT["✓Rollup outbox messageRollup node · outbox · Rollup✓ rollup_message_index"]:::sys
SOM --> OUT
end
subgraph L1["L1 · MICHELSON"]
direction TB
PUB["Rollup publishTzKT · transaction · Rollup"]:::l1
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.burnTzKT · transaction · Tez-Ticketer"]:::l1
VT["Value TransferTzKT · transaction · Tez-Ticketer"]:::l1
USER_L1(["User"]):::actor
WT(["Watchtower"]):::actor
CEM -.-> EXE
EXE -->|ticket| WD
WD --> VT
VT -->|xtz| USER_L1
end
NAC -->|NAC| WB
WB --> SOM
OUT --> PUB
PUB -.->|⏳ ~14 days · refutation window| CEM
WT --> EXE
class EV indexed
class OUT indexed
class CEM indexed
class EXE indexed
class NAC faded
class WB faded
class SOM faded
class PUB faded
class WD faded
class VT faded
class WT faded
class USER_M faded
class USER_E faded
class USER_L1 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 sys fill:#8b919c1f,stroke:#8b919c,stroke-width:1.5px;
classDef actor fill:transparent,stroke:#e8836b,stroke-width:1.5px;
classDef actor-mich fill:transparent,stroke:#6fbf73,stroke-width:1.5px;
classDef actor-evm fill:transparent,stroke:#5aa6e0,stroke-width:1.5px;
classDef indexed stroke-width:2px;
classDef faded stroke-width:1.5px;
linkStyle 0 stroke:#6fbf73,stroke-width:2.4px;
linkStyle 1 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 2 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 3 stroke:#8b919c,stroke-width:2.4px;
linkStyle 4 stroke:#e8836b,stroke-width:2.4px,stroke-dasharray:6 5;
linkStyle 5 stroke:#e8836b,stroke-width:2.4px;
linkStyle 6 stroke:#e8836b,stroke-width:2.4px;
linkStyle 7 stroke:#e8836b,stroke-width:2.4px;
linkStyle 8 stroke:#6fbf73,stroke-width:2.4px;
linkStyle 9 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 10 stroke:#8b919c,stroke-width:2.4px;
linkStyle 11 stroke:#e8836b,stroke-width:2.4px,stroke-dasharray:6 5;
linkStyle 12 stroke:#e8836b,stroke-width:2.4px;
Legend
Hue
L2 Michelson
L2 EVM
Kernel / outbox
L1 rollup
Decision
✓ indexed
not indexed
Status
⏳ ~14 days refutation window