To enable native Solana program calls via API, you must create a new Policy rule with the Program Call operation type. You can use the following rule parameters to govern your native Solana program calls: Source, Initiator, Designated signer, Allow/Block/Request approval. Additionally, you can whitelist specific programs and addresses to ensure that only approved program calls are executed.
Note:
Policy rules for Solana Raw Signing transactions do not apply to Solana program calls initiated via the Fireblocks API.
Whitelisting programs and destinations
For Solana program calls to work as expected, every program you interact with must be explicitly whitelisted, along with any transfer destinations involved in the transaction.
For example, if you're swapping SOL on a DEX like Jupiter, and the transaction routes through wrapped SOL (wSOL), you must whitelist both the wSOL program and the relevant Jupiter program(s) addresses. Without this, the transaction may fail due to missing permissions.
To whitelist specific programs, use the Contract Wallet to add a Program Address. Choose SOL/SOL_TEST as the blockchain's base asset and add the program address. The newly added program will be Pending Approval and can be used once approved.
Fireblocks automatically whitelists certain Solana programs and accounts, removing the need for manual whitelisting:
| Program | Address | Purpose |
|---|---|---|
| System Program | 11111111111111111111111111111111 |
Responsible for creating and managing accounts, transferring SOL, and other system-level operations. |
| Compute Budget | ComputeBudget111111111111111111111111111111 |
Adjusts compute limits and resource allocation for transactions that require additional resources. |
| Token Program | TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA |
Defines a common implementation for Fungible and Non-Fungible tokens. |
| Token-2022 Program | TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb |
The Token-2022 Program, also known as Token Extensions, is a superset of the functionality provided by the Token Program. |
| Associated Token Account Program | ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL |
Defines the convention and provides the mechanism for mapping the user's wallet address to their associated token accounts. |
| Memo Program | MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr |
Validates a string of UTF-8 encoded characters and verifies that any accounts provided are signers of the transaction. |
| RecentBlockhashes Sysvar Account | SysvarRecentB1ockHashes11111111111111111111 |
Contains the active recent blockhashes and their associated fee calculators. |
| Rent Sysvar Account | SysvarRent111111111111111111111111111111111 |
Contains the rental rate. |
| Staking program | Stake11111111111111111111111111111111111111 |
Automatically whitelists addresses so staking customers don't have to do it manually for their tenants. |
Next steps
- Policy rule parameters — Reference guide for all available parameters
- Policies for EVM DeFi operations — Related DeFi Policy concepts for EVM comparison