Solana
Planned, not supported: what a Solana binding would need, and what is decided so far.
Nothing in the profile spec covers Solana, and no package reads an Anchor IDL. There is no Solana profile, pack, resolved form or consent text today. This page records what a binding would need, so the gaps are visible; none of it is implemented.
Where it stands#
Solana is planned, and nothing more is settled. The EVM binding came first (EVM contracts, experimental), and it is the test of whether the split between the interface layer and the profile layer holds on a chain whose interfaces are not Candid. open The plan is to start on Solana only once that binding shows the split holds; no date and no design for it are recorded in the repository.
What a binding would need#
The Solana column below comes from a design proposal, not from the spec. Every entry in it is an assumption to check or an open question; nothing in it is a commitment. The ICP and EVM columns describe what exists, for comparison.
| ICP | EVM (experimental) | SOL (planned) | |
|---|---|---|---|
| Interface file | Candid .did, compiled to a Contract graph |
the ABI, in binds.abi |
assumption the Anchor IDL; Codama converts Anchor and Shank IDLs |
| A call | a method with an argument tuple | a function, matched by selector; its parameters are one record at argument 0 | assumption an instruction with named arguments and an ordered list of accounts |
| Where decimals live | the ledger: query:icrc1_decimals |
the token: query:decimals, an eth_call |
open in the mint account, which no dynamic value can read today: a new source would be needed |
| Addresses | principals and ICRC-1 account text | 0x and 40 hex digits, EIP-55 |
assumption 32-byte keys written in base58; a token transfer goes to a derived token account, not to the owner's key |
| Retry safety | created_at_time, deduplicated inside the ledger's window |
not yet: idempotency by nonce is a later phase | assumption a transaction lands at most once while its blockhash is valid, about 150 blocks by Solana's documentation |
| Settling an unknown outcome | the ledger's ICRC-3 blocks | not yet: receipts are a later phase | assumption the status of the transaction's signature |
| Errors | result variant cases, each with an outcome class | not yet: outcome classes over reverts are a later phase | assumption program error codes |
| Consent standard | ICRC-21 | consent text without an envelope, and ERC-7730 files | open none found |
| Local tests | PocketIC | none run yet; Anvil would be the local chain | assumption solana-test-validator |
Each row is a place where the profile layer would have to grow: a new interface reader, a new kind of address, a new source of dynamic values, and new rules for retries and reconciliation. Where the spec stands on each chain today: Internet Computer, EVM contracts and Open questions.