GLAMIDL Reference

deposit_for_burn

Burns vault USDC through CCTP for an outbound cross-chain transfer.

Required conditions

  • The vault integration ACL must enable this integration before the instruction is accepted; that enablement is defined on the GLAM state account.
  • If the signer is not the owner, the delegate ACL on the GLAM state must contain the exact protocol permission required by this instruction; registering a delegate alone is insufficient.
  • Instruction-specific destination accounts must satisfy the external protocol's own account model; GLAM validates the accounts it needs for authorization and policy enforcement, then passes the remaining protocol accounts through CPI.

Accounts

AccountRoleDescription
glam_statewritableGLAM state account that stores vault configuration, integration ACLs, delegate permissions, policies, assets, mint linkage, and pricing records.
glam_vaultwritableVault PDA associated with the GLAM state and used as the vault authority.
glam_signersigner, writableCalling authority or fee payer.
integration_authorityread-onlyProgram-derived authority used by the integration for downstream invocation.
cpi_programread-onlyDownstream program invoked by this instruction.
glam_protocol_programread-onlyGLAM Protocol program account used for authorization or CPI.
system_programread-onlySolana System Program.
sender_authority_pdaread-onlyCCTP sender authority PDA that authorizes the vault burn through Circle's token messenger.
burn_token_accountwritableToken account read or written by this instruction.
denylist_accountread-onlyCircle CCTP denylist account checked before the USDC burn is submitted.
message_transmitterwritableCircle CCTP MessageTransmitter state account updated when the outbound message is recorded.
token_messengerread-onlyCircle CCTP TokenMessenger account that coordinates the USDC burn and cross-chain message.
remote_token_messengerread-onlyCircle CCTP remote TokenMessenger account for the destination domain.
token_minterread-onlyToken mint account used or validated by this instruction.
local_tokenwritableCircle CCTP local-token metadata account for the burned USDC mint.
burn_token_mintwritableToken mint account used or validated by this instruction.
message_sent_event_datasigner, writableToken account read or written by this instruction.
message_transmitter_programread-onlymessage transmitter program account invoked or checked by this instruction.
token_messenger_minter_programread-onlyToken mint account used or validated by this instruction.
token_programread-onlyToken program account.
event_authorityread-onlyEvent authority or downstream event account.

Arguments

ArgumentTypeNotes
argsDepositForBurnParams

Policy & permissions

  • Requires a Vault GLAM state.
  • Caller: GLAM owner, or a delegate with CCTP Transfer.
  • The CCTP policy gates the (destination_domain, mint_recipient) pair against an allowlist; asset and amount are not gated.

TypeScript SDK usage

await glamClient.cctp.bridgeUsdc(
  new BN(1_000_000),
  0,
  destinationAddress,
  { maxFee: new BN(500_000), minFinalityThreshold: 1000 },
);