GLAM Protocol StagingStaging
system_transfer
Transfers SOL or wraps SOL from the vault under GLAM authorization and destination policy.
Accounts
| Account | Role | Description |
|---|---|---|
| glam_state | read-only | GLAM state account that stores vault configuration, integration ACLs, delegate permissions, policies, assets, mint linkage, and pricing records. |
| glam_vault | writable | Vault PDA associated with the GLAM state and used as the vault authority. |
| glam_signer | signer, writable | Calling authority or fee payer. |
| cpi_program | read-only | Downstream program invoked by this instruction. |
| to | writable | to account read or updated by GLAM Protocol Staging's system transfer instruction. |
Arguments
| Argument | Type | Notes |
|---|---|---|
| lamports | u64 |
Policy & permissions
- SingleAssetVault states are rejected.
- Signer must be the GLAM owner or a delegate with the appropriate System permission for the destination kind:
- • WSOL token-account destinations owned by the vault require System
WSOL. - • Stake-account destinations require Stake
Stakeand the stake account's withdraw authority must be the vault. - • Other destinations check the
TransferPolicydestination allowlist and require SystemTransfer. WSOL token accounts owned by an allowlisted address use this sameTransferpath and additionally require the vault not to be a tokenized vault. - There is no mint/asset or amount policy on this instruction.
TypeScript SDK usage
await glamClient.vault.systemTransfer(
1_000_000_000,
recipient,
);