Solana Integration
Canisters on ICP can query and interact with the Solana network through the SOL RPC canister. The architecture mirrors the Ethereum integration: HTTPS outcalls are used to query Solana’s JSON-RPC API, and chain-key Schnorr signatures (Ed25519) enable canisters to sign Solana transactions.
SOL RPC canister
Section titled “SOL RPC canister”The SOL RPC canister is a system-level canister that acts as a gateway between ICP canisters and Solana’s JSON-RPC API. Like the EVM RPC canister, it is controlled by the NNS and uses multiple independent JSON-RPC providers to ensure responses are not sourced from a single centralized party.
Supported providers include Alchemy, Ankr, Chainstack, dRPC, Helius, and PublicNode.
Each request is forwarded to multiple providers. If providers return consistent results, that response is passed back to the calling canister. The NNS controls which providers are registered and how the canister behaves, so no single entity can alter its operation.
Signing Solana transactions
Section titled “Signing Solana transactions”Solana uses Ed25519 signatures. Canisters can derive Ed25519 public keys and request threshold Schnorr signatures via the management canister’s schnorr_public_key and sign_with_schnorr API (using the ed25519 algorithm variant). This gives each canister its own Solana wallet address, with signing performed collectively by subnet nodes without reconstructing the private key.
Chain-key SOL (ckSOL)
Section titled “Chain-key SOL (ckSOL)”ckSOL is the chain-key token representing SOL on ICP. Like ckETH, it is backed 1:1 by SOL held in a canister-controlled Solana address. The minter canister monitors Solana deposits via the SOL RPC canister and mints ICRC-1/ICRC-2 compliant ckSOL tokens on ICP. Withdrawals follow the same pattern: burn ckSOL, sign a Solana transfer using chain-key Ed25519, and broadcast via the SOL RPC canister.
Depositing SOL (SOL to ckSOL)
Section titled “Depositing SOL (SOL to ckSOL)”Withdrawing SOL (ckSOL to SOL)
Section titled “Withdrawing SOL (ckSOL to SOL)”Next steps
Section titled “Next steps”- Solana guide: code examples for interacting with Solana
- Chain Fusion overview: integration patterns and supported chains
- Ethereum integration: the EVM RPC canister for comparison
- Chain-key cryptography: Ed25519 threshold Schnorr signing
- SOL RPC canister reference: canister ID and provider list
- Chain-Key Token Canister IDs: ckSOL: ckSOL minter and ledger IDs