Bridge indexing · deposit
XTZ deposits
flowchart TD
subgraph L1["L1 · MICHELSON"]
direction TB
MINT["Call ticketer.mintTzKT · transaction · tez-ticketer"]:::l1
TT["✓Transfer TicketTzKT · transaction · rollup✓ tezos.on_rollup_call✚ TezosDepositOperation"]:::l1
MINT --> TT
end
subgraph KER["ROLLUP / KERNEL"]
direction TB
INBOX["✓Inbox messageTzKT · inbox · rollup✓ rollup_message_index✚ RollupInboxMessage"]:::sys
KP["Kernel parse_routing"]:::ker
INBOX --> KP
end
subgraph EVMA["L2 · EVM · ACTUAL"]
direction TB
QUEUE["Call XTZBridge.queueBlockscout · transaction · 0xff…01"]:::evm
QD["Event QueuedDepositBlockscout · event · 0xff…01"]:::evm
CLAIM["Call XTZBridge.claim_xtzBlockscout · transaction · 0xff…01"]:::evm
VT["✓Value TransferBlockscout · transaction · 0x…feed✓ etherlink.on_xtz_deposit✚ EtherlinkDepositOperation"]:::evm
EV["Event DepositBlockscout · event · 0xff…01"]:::evm
WT(["Watchtower"]):::actor
QUEUE --> QD
QD --> CLAIM
CLAIM --> VT
VT --> EV
end
subgraph EVML["L2 · EVM · LEGACY"]
direction TB
LVT["✓Value TransferBlockscout · transaction · 0x00…00✓ etherlink.on_xtz_deposit✚ EtherlinkDepositOperation"]:::evm
LEV["Event DepositBlockscout · event · 0x00…00"]:::evm
LVT --> LEV
end
subgraph MICH["L2 · MICHELSON"]
direction TB
MTX["Value TransferTzKT · transaction · tz1Ke2h7…"]:::mich
MEV["◔Event DepositTzKT · event · tz1Ke2h7…◔ planned: tezos.events✚ TezosDepositOperation"]:::mich
MTX --> MEV
end
TT --> INBOX
KP -->|has code → queue| QUEUE
KP -->|no code| VT
KP -->|old kernel| LVT
KP -->|Michelson · tz1| MTX
WT -.-> CLAIM
%% decision classes — one line per node (a comma in class = a list of NODES, not classes)
class TT indexed
class INBOX indexed
class VT indexed
class LVT indexed
class LVT legacy
class LEV legacy
class QUEUE faded
class QD faded
class CLAIM faded
class EV faded
class LEV faded
class MINT faded
class MTX faded
class KP faded
class WT faded
class MEV planned
%% IMPORTANT: no color: in classDef — mermaid turns it into `.class span{color !important}`,
%% which overrides per-line colors (.t/.s/.ix/.md). Text color is set ONLY by themeCSS. classDef = border/fill.
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:#5aa6e0,stroke-width:1.5px;
classDef indexed stroke-width:2px;
classDef planned stroke-width:2px;
classDef faded stroke-width:1.5px;
classDef legacy stroke-width:1.5px;
%% edge color = runtime of the source (rule #4). Order = order of edge declaration, including edges inside subgraphs
linkStyle 0 stroke:#e8836b,stroke-width:2.4px;
linkStyle 1 stroke:#8b919c,stroke-width:2.4px;
linkStyle 2 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 3 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 4 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 5 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 6 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 7 stroke:#6fbf73,stroke-width:2.4px;
linkStyle 8 stroke:#8b919c,stroke-width:2.4px;
linkStyle 9 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 10 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 11 stroke:#5aa6e0,stroke-width:2.4px,stroke-dasharray:6 5,opacity:0.55;
linkStyle 12 stroke:#6fbf73,stroke-width:2.4px;
linkStyle 13 stroke:#5aa6e0,stroke-width:2.4px,stroke-dasharray:6 5,opacity:0.55;
Legend
Hue
L1
L2 EVM
L2 Michelson
Kernel
Decision
✓ indexed
◔ planned
not indexed
Status
Legacy · remains in mainnet