RPC Methods
Wallets must support the following JSON-RPC methods over WalletConnect sessions. No events are required.
ton_sendMessage
Submit one or more transaction messages to the TON network.
Request
Example Request
Success Response
Error Response
ton_signData
Sign an off-chain payload (text, binary, or cell) for authentication or verification by dApps.
Request
Example Request
Success Response
Error Response
Session Properties
Wallets must include ton_getPublicKey and ton_getStateInit in the session properties when approving a session. This is mandatory for TON Connect compatibility.
When approving a session, wallets must serialize the following properties into session.sessionProperties:
ton_getPublicKey: The Ed25519 public key of the wallet (hex-encoded)
ton_getStateInit: The StateInit of the wallet contract (base64-encoded BoC)
These properties are essential for TON Connect support because:
- The public key is required for signature verification
- The StateInit is needed to compute and verify the wallet address, as TON addresses are derived from the contract code and initial data
Example Session Approval
This allows dApps to consume an active session without requiring additional requests to retrieve the wallet’s public key and state initialization data.
Notes & Considerations
- If
from is omitted, the wallet should prompt the user to select an address.
- All requests and responses must comply with JSON-RPC structure (
id, jsonrpc, etc.).
- Signature verification can be done using
ed25519.verify on the original bytes.
stateInit support is needed when your wallet supports contract deployment flows.
- The
domain field in responses indicates the originating application (dApp) domain.