Hi everyone 
Summary
As announced in the Global R&D of January 2025, DFINITY is working on a Solana RPC canister that will leverage HTTPs outcalls to interact with the Solana blockchain. This canister will be managed as a service (under NNS control) and will extend the Chain Fusion capabilities of ICP. Together with the already available support for threshold EdDSA signatures, the Helium milestone will be complete.
What to expect
You can expect a similar experience in terms of features and API as offered by the EVM RPC canister for EVM chains. In particular:
- The canister will be under NNS control, where API keys will be managed by DFINITY.
- Developers can pay for their requests with cycles and do not need to manage API keys or JSON RPC providers.
- No single point of failure: by default, multiple providers are queried and their responses aggregated.
- To make it easy to use, we plan on building a client to facilitate the interaction with the SOL RPC canister and also provide various examples.
Supported RPC methods
The list of methods that we plan to support at launch is not set in stone but would currently include the following:
Remarks:
- Do chime in
if you have a use case in your dapp for a method that is not in the list. As for the EVM RPC canister, we also plan to have a generic method to forward any JSON payload so that the lack of support for some specific method at launch does not constitute a blocker.
Related projects
Special thanks
to ic-solana which paved the way to interact with Solana via HTTPs outcalls. As far as we are aware of, the developers of that project do not intend to run it as a service. How much code will be shared between both canisters is yet to be defined, but it should not impact users of the SOL RPC canister (this is a pure implementation detail).
10 Likes
Hi everyone 
It’s with great pleasure that I can announce that we released today the first version of the SOL RPC canister
.
- This is a pre-release, currently deployed on a staging canister (
titvo-eiaaa-aaaar-qaogq-cai
) on the fiduciary subnet (pzp6e
). The only difference with the upcoming production canister is that the staging canister is controlled by our team, while the production canister will be controlled by the NNS. In particular, the production canister will also be deployed on the fiduciary subnet, meaning that latency and cycles cost should remain the same.
- It comes with examples and a Rust client library to hopefully make it as easy as possible to build right away
. Check out the repository for more details.
Supported Methods
A Solana RPC method is not supported? There is an endpoint (jsonRequest
) to send any JSON-RPC request.
Supported Providers
- Alchemy (Mainnet and Devnet)
- Ankr (Mainnet and Devnet)
- dRPC (Mainnet and Devnet). Note that this provider does not offer archive nodes for Solana.
- Helius (Mainnet and Devnet)
- PublicNode (only Mainnet)
Looking ahead
What’s missing for the first production release? We would like to add support for a few more methods (as listed in the first post) and maybe a few more providers but the most important part is actually your feedback
. We would be very grateful for community projects to be willing to try out that first pre-release and let us know what they think
.
23 Likes
I remember the mention of a difficulty with Solona RPC being that the hash needed to write a transaction was difficult to get through the RPC due to response times and the 13 nodes getting different responses.
Was this issue resolved and/or what is the best way to mediate it? Is there a suggested strategy for pulling the required info and then writing a transaction when there is not a user involved(in which case I’d assume your dapp code could get this more quickly and feed it in).
Hi @skilesare ! Your questions should be answered by the README and the basic_solana
example but feel free to follow-up if that’s not the case.
3 Likes
Question: Will the slot passed away already after we getSlot and then send out the transaction?
- There are therefore two options to send a transaction on Solana using the SOL RPC canister.
- Use a durable nonce instead of a blockhash.
- Retrieve a recent blockhash by first retrieving a recent slot with
getSlot
and then getting the block (which includes the blockhash) with getBlock
.
Hi @0xkookoo! Could you clarify what you mean with
Will the slot passed away
?
Hey
I’ve already built a fully on-chain cross-chain bridge on ICP, enabling secure and decentralized transfers:
- EVM to EVM
- EVM to Solana
- EVM to Stellar
All key processes — from transaction construction, signature generation (ECDSA/Ed25519), on-chain indexing, and relaying — are handled entirely on-chain via ICP canisters. No off-chain relayers or centralized services involved.
The only part still in progress is extending the bridge to Bitcoin → Memecoin → Solana, which is actively under development.
Would love to bring this experience to your project and help build something iconic on ICP.
— Rachit
@gregory-demay Hello,thanks for your amazing work on sol-rpc-canister, I’m integrate the canister with our canisters. I found that the interface named getTransaction is not support the JsonParsed encoding. Could you let me known why? If you are working on it, when can the interface support the JsonParsed encoding ?
@StewartYe Thank you for your interest in the SOL RPC canister! That’s correct, we currently don’t support the jsonParsed
or json
encodings for the getTransaction
endpoint primarily because of their limited support with the Rust Solana SDK (see e.g. here). Using a binary encoding (i.e. base58 or base64) also minimizes the response size.
Would you have an example use-case where using the jsonParsed
encoding format would be valuable to you and/or where you cannot use a binary encoding instead?
1 Like
Ok, thanks. I resovled it. I implemented the parse logic to do it.
1 Like
Another, I found that SOL-RPC-CANISTER is pre-release and deplyed on staging environment only now, When will you deploy it on production environment?
@StewartYe
When will you deploy it on production environment?
We are actually aiming to have the production SOL RPC canister up and running next week! Stay tuned for more updates on that side.
1 Like
Hi everyone 
It’s with great pleasure that I can announce that the SOL RPC canister is officially released
.
Supported JSON-RPC Methods
Is a Solana RPC method not supported? There is an endpoint (jsonRequest
) to send any JSON-RPC request (since v0.1.0).
Supported Providers
I especially want to thank @lpahlavi who did most of the implementation of the SOL RPC canister that enabled this milestone
.
6 Likes