Program IDs & addresses
The shielded-pool builtin, its vault, and the bridge builtin.
null's pool and bridge are chain builtins, not deployed programs. Their "program ids" are recognizable 32-byte ASCII strings (used as the target of a transaction's single instruction, which the Node intercepts).
Shielded pool
| Name | 32-byte ASCII value | Role |
|---|---|---|
POOL_PROGRAM_ID | svmchain-shielded-pool-builtin!! | target of shield / transfer / unshield instructions |
POOL_VAULT | svmchain-shielded-pool-vault!!!! | custodies shielded lamports; balance == Σ shielded-in − Σ shielded-out |
A pool op is a transaction whose single instruction targets POOL_PROGRAM_ID,
with the fee payer as account 0. The 505-byte instruction data layout is in
Shielded pool internals.
Bridge
| Name | Value | Role |
|---|---|---|
BRIDGE_PROGRAM_ID | bridge builtin id | target of burn instructions (data = [1][amount u64][solana_recipient 32]) |
The Solana-side vault program (deployable, but not yet deployed to a real
validator — see Bridge) uses a vault PDA ["vault"]
and per-nonce receipt PDAs ["receipt", nonce] for replay protection.
The placeholder chain name in some source strings is svmchain; the product name
is null. The builtin id strings are byte-stable regardless of the product name.