Solana integration
Canister smart contracts on ICP can interact directly with the Solana network. This integration is made possible by ICP’s HTTPS outcalls, which allow canisters to securely fetch external data, and threshold Ed25519 cryptography, which enables canisters to sign transactions. As a result, canisters can query the Solana blockchain and submit signed transactions to it.
HTTPS outcalls: Canisters use HTTPS outcalls to fetch data from external sources, and can be used to query information about Solana’s JSON-RPC services or transaction, address, and block information. To facilitate JSON-RPC calls, the SOL RPC canister has been developed and deployed on the ICP mainnet, serving as a reusable building block that other canisters can integrate with.
Threshold Ed25519: A canister can have a secret key that is stored in a secure and decentralized manner using chain-key cryptography. Messages sent by the canister can be signed using this key, enabling the canister to send signed transactions to Solana.
SOL RPC canister
Canisters deployed on ICP are able to communicate with the Solana blockchain using the SOL RPC canister. At a very high level, the SOL RPC canister offers the same services to canisters as if a Solana RPC node were directly available on the ICP mainnet.
The SOL RPC canister contacts multiple JSON-RPC Solana providers via HTTPS outcalls, such as Helius, Alchemy, Ankr, dRPC, or Public Node, and aggregates their responses to avoid a single point of failure.
The SOL RPC canister is controlled by the Network Nervous System. Canisters can call the SOL RPC canister directly without any additional setup (e.g., no API keys needed) and trust that any change to it will require a proposal to be reviewed and approved by the community.
Follow the SOL RPC canister README for detailed usage instructions.