Summary
Solana wallet stakeholders met to align on a path to ship off-chain message signing across the ecosystem. The goal was to agree on a concrete implementation pathway for the existing OCMS standard.
- Participants: Solana Foundation, Phantom, Solflare, Jupiter, Ledger, Trezor, Anza, OS Contributors for Supabase & others.
- Headline decision: We will introduce a new
signOffChainMessage method (rather than changing the existing signMessage/solanaSignMessage), supporting the v1 standard only. This is a non-breaking, additive change that lets wallets and dApps adopt at their own pace.
Proposal Considered
RFC: Add solana:signOffchainMessage feature for off-chain message signing
Key Decisions
Close existing Wallet Adapter PR#1097 in lieu of the following:
- New method, no breaking changes
- Add a new
signOffChainMessage method instead of extending the existing solanaSignMessage.
- Maintains backward compatibility for existing dApps and avoids breaking changes across the ecosystem.
- Enables gradual, opt-in adoption by dApps.
- Wallet owns serialization
- The wallet/signer — the most trusted layer — owns message envelope construction.
- dApps send the raw message content; the wallet wraps it with the proper preamble/envelope before signing.
- The method returns both the signature and the signed message object.
- Follows EVM precedent, where the wallet is the trust authority.
- Keeps a simple
window.signMessage-style interface and avoids pushing dependencies into auth libraries, reducing the security attack surface.
- v1 only — drop v0
- Support the v1 codec only; v0 support is dropped.
- v0 has minimal adoption
- A new method gives us a clean break from the legacy approach.