Overview
This page provides examples for Solana-based embedded wallet policy configurations. These policies control end-user Solana transaction signing, sending, and message signing. For general embedded wallet policy concepts, see the Embedded Wallet Policies Overview.Supported operations
| Operation | Description |
|---|---|
signEndUserSolTransaction | Governs end-user Solana transaction signing |
sendEndUserSolTransaction | Governs end-user Solana transaction signing and sending to a network |
signEndUserSolMessage | Governs end-user Solana message signing |
Supported criteria by operation
| Criterion | signEndUserSolTransaction | sendEndUserSolTransaction | signEndUserSolMessage |
|---|---|---|---|
| solAddress | Y | Y | |
| solValue | Y | Y | |
| splAddress | Y | Y | |
| splValue | Y | Y | |
| mintAddress | Y | Y | |
| solData | Y | Y | |
| programId | Y | Y | |
| solNetwork | Y | ||
| solMessage | Y |
SOL transfer policies
Address allowlist
Restrict end-user SOL transfers to a set of trusted addresses.end-user-sol-allowlist.json
SOL value limit
Limit end-user SOL transfers to 2 SOL (2,000,000,000 lamports) or less.end-user-sol-value-limit.json
Address denylist
Block end-user transactions to known malicious addresses.end-user-sol-denylist.json
SPL token policies
Restrict by token mint
Only allow end-user transactions involving specific token mints (USDC and USDT in this example).end-user-spl-mint-restriction.json
SPL token value limit
Limit end-user USDC transfers to 500 USDC (500,000,000 base units with 6 decimals).end-user-spl-value-limit.json
SPL recipient allowlist
Restrict SPL token transfers to pre-approved recipient token accounts.end-user-spl-recipient-allowlist.json
Network restriction policies
Restrict to specific networks
Only allow end-user transactions to be sent on mainnet.end-user-sol-network-restriction.json
Program restriction policies
Allow specific programs only
Restrict end-user transactions to interact only with the System Program and Token Program.end-user-sol-program-restriction.json
Message signing policies
Restrict message content
Only allow end users to sign messages matching a specific pattern.end-user-sol-message.json
Instruction data policies
For advanced instruction data validation using IDL specifications, thesolData criterion is fully documented in the Solana IDL Policies reference — use signEndUserSolTransaction or sendEndUserSolTransaction as the operation name in place of the examples shown there.
end-user-sol-data.json
Key considerations
Token decimals
When setting token amounts, account for token decimals:- SOL: 9 decimals (1 SOL = 1,000,000,000 lamports)
- USDC: 6 decimals (1 USDC = 1,000,000 base units)
- USDT: 6 decimals (1 USDT = 1,000,000 base units)
Common addresses
Token Mints:- USDC:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v - USDT:
Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB - Wrapped SOL:
So11111111111111111111111111111111111111112
- System Program:
11111111111111111111111111111111 - Token Program:
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA - Associated Token Program:
ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL
What to read next
- Embedded Wallet Policies Overview: General concepts
- Embedded Wallet EVM Policies: EVM-specific policy examples
- Solana IDL Policies: Advanced instruction data validation with IDLs
- Policy Engine: How the Policy Engine works across all CDP wallet products
- API Reference: Policy Engine API reference