This section is the on-chain instruction reference. Most developers call these instructions through the generated TypeScript clients; you only need this if you are building operator tooling, writing custom integrations, or debugging instruction-level errors.
Escrow Program (9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU) - manages
deposits, operator provisioning, and Mainnet settlement:
- CreateInstance - initialize the escrow instance PDA
- AllowMint - whitelist an SPL token mint
- BlockMint - remove a mint from the allowlist
- AddOperator - provision an operator
- RemoveOperator - revoke an operator
- SetNewAdmin - transfer admin rights
- Deposit - move SPL tokens into the escrow
- Release Funds - operator settles a withdrawal to Mainnet
- Reset SMT Root - operator rotates the Sparse Merkle Tree
Withdraw Program (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi) - runs on
the private channel network:
- Withdraw Funds - burn channel-side balance to initiate a withdrawal
Error Codes
Escrow Program - PrivateChannelEscrowProgramError
| Code | Message |
|---|---|
InvalidEventAuthority | Invalid event authority provided |
InvalidAta | Invalid ATA provided |
InvalidMint | Invalid mint provided |
InvalidInstanceId | Instance ID invalid or does not respect rules |
InvalidInstance | Invalid instance provided |
InvalidAdmin | Invalid admin provided |
TransferHookNotAllowed | Transfer hook extension not allowed |
InvalidOperatorPda | Invalid operator PDA provided |
InvalidTokenAccount | Invalid token account provided |
InvalidEscrowBalance | Invalid escrow balance |
InvalidAllowedMint | Invalid allowed mint |
InvalidSmtProof | Invalid SMT proof provided |
InvalidTransactionNonceForCurrentTreeIndex | Invalid transaction nonce for current tree index |
UnexpectedTreeIndex | Unexpected current tree index for SMT root reset |
Withdraw Program - PrivateChannelWithdrawProgramError
| Code | Message |
|---|---|
InvalidMint | Invalid mint provided |
ZeroAmount | Withdrawal amount must be greater than zero |
Is this page helpful?