To enable native Solana program calls via API, you must create a new TAP 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
TAP 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 new added program should 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 | This program 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 | The Memo program is a simple program that validates a string of UTF-8 encoded characters and verifies that any accounts provided are signers of the transaction. |
RecentBlockhashes Sysvar Account | SysvarRecentB1ockHashes11111111111111111111 | The RecentBlockhashes sysvar contains the active recent blockhashes and their associated fee calculators. |
Rent Sysvar Account | SysvarRent111111111111111111111111111111111 | The Rent sysvar contains the rental rate. |