Solana is a high-performance blockchain platform designed to deliver fast, secure, and scalable solutions for decentralized applications (DApps) and cryptocurrencies. Utilizing its innovative Proof of History (PoH) consensus algorithm, Solana achieves throughput of tens of thousands of transactions per second (TPS) while maintaining decentralization and security. The platform aims to drive mass blockchain adoption through its technical advantages, supporting complex DApps and global financial systems.
Sonic represents the first atomic SVM chain built specifically for sovereign game economies on Solana.
Installation & Initialization
Ensure your OKX App is updated to version 6.90.1 or later before integration:
npm install @okx-web3/connectTo begin wallet operations, first create an initialization object:
Parameters
dappMetaData(object):name(string): Your application name (non-unique identifier)icon(string): URL for app icon (180x180px PNG recommended)
Returns
OKXUniversalProviderinstance
Example
const provider = new OKXUniversalProvider({
dappMetaData: {
name: "MyDApp",
icon: "https://example.com/icon.png"
}
});Wallet Connection
Establish connection to retrieve wallet addresses for identification and transaction signing:
Parameters
connectParams(object):namespaces(required): Chain connection details (use"solana"for Solana-compatible chains)chains(string[]): Network IDsoptionalNamespaces(optional): Secondary connection detailsdefaultChain(string): Default networksessionConfig(object):redirect(string): Post-connection redirect (e.g.,"tg://resolve"for Telegram Mini Apps)
Returns
Connection session object containing:
topic(string): Session IDaccounts(string[]): Wallet addresses- Supported methods and chains
Checking Connection Status
Verify current wallet connection:
Returns
boolean: True if connected
Transaction Preparation
Create transaction handler:
const solanaProvider = new OKXSolanaProvider(universalProvider);Message Signing
Parameters
message(string): Content to signchain(string): Network ID (required for multi-chain connections)
Returns
Object containing:
publicKey(string)signature(Uint8Array)
Transaction Signing
Parameters
transaction(Transaction | VersionedTransaction)chain(string): Network ID
Returns
- Signed transaction object
Batch Transaction Signing
Parameters
transactions(Transaction[] | VersionedTransaction[])chain(string): Network ID
Returns
- Array of signed transactions
Transaction Signing & Broadcasting
Parameters
transaction(Transaction | VersionedTransaction)chain(string): Network ID
Returns
string: Transaction hash
Retrieving Wallet Address
Parameters
chain(string): Network ID (optional)
Returns
Object containing:
address(string)publicKey(PublicKey)
Disconnecting Wallets
Terminates current session. Required before switching wallet connections.
Event Handling
Listen for connection state changes and transaction events.
Error Codes
| Code | Description |
|---|---|
| UNKNOWN_ERROR | Unexpected error |
| ALREADY_CONNECTED_ERROR | Existing active connection |
| USER_REJECTS_ERROR | User denied request |
| CHAIN_NOT_SUPPORTED | Unsupported network |
| CONNECTION_ERROR | Connection failure |
FAQs
Q: What's the minimum OKX App version required?
A: Version 6.90.1 or higher is required for DApp integration.
Q: Can I connect multiple Solana-compatible chains simultaneously?
A: Yes, specify all required chains in the namespaces parameter during connection.
Q: How do I handle user rejections?
A: Catch USER_REJECTS_ERROR and provide appropriate user feedback.