Solana is a high-performance blockchain platform committed to providing fast, secure, and scalable solutions for decentralized applications and cryptocurrencies. The platform utilizes an innovative consensus algorithm called Proof of History (PoH) that can handle tens of thousands of transactions per second (TPS) while maintaining decentralization and security. Overall, Solana aims to achieve mass adoption of blockchain through its unique technological advantages, catering to various complex decentralized applications and global financial systems.
Sonic is the first atomic SVM chain built to enable sovereign game economics on Solana.
Make sure to update the OKX App to version 6.90.1 or later to start accessing it:
To integrate OKX Connect into your DApp, you can use npm:
npm install @okxconnect/solana-provider
Before connecting the wallet, you need to create an object for subsequent wallet connections, transaction submissions, and other operations.
OKXUniversalProvider.init({metaData: {name, icon}})
*Request Parameters
Return Value
Example
import { OKXUniversalProvider } from "@okxconnect/universal-provider";
const okxUniversalProvider = await OKXUniversalProvider.init({
dappMetaData: {
name: "application name",
icon: "application icon url"
},
})
Connect the wallet to obtain the wallet address, which serves as an identifier and is necessary for signing transactions.
okxUniversalProvider.connect(connectParams: ConnectParams);
Request Parameters
connectParams - ConnectParams
Promise <SessionTypes.Struct | undefined>
Record<string, Namespace>
; namespace information for a successful connection;
Example
var session = await okxUniversalProvider.connect({
namespaces: {
solana: {
chains: ["solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", //solana mainnet
"solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",//solana testnet
"sonic:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z"// sonic testnet
],
}
},
sessionConfig: {
redirect: "tg://resolve"
}
})
This method allows sending messages to the wallet, supporting signatures, transactions, and RPC requests.
First create an OKXSolanaProvider object, passing OKXUniversalProvider into the constructor.
import { OKXSolanaProvider } from "@okxconnect/solana-provider/OKXSolanaProvider";
let okxSolanaProvider = new OKXSolanaProvider(okxUniversalProvider)
Signature
okxSolanaProvider.signMessage(message, chain);
Request Parameters
Return Value.
Signature of single transaction
okxSolanaProvider.signTransaction(transaction, chain);
Request parameters
Return value
Signs multiple transactions
okxSolanaProvider.signAllTransactions(transactions, chain);
Request parameters
Return value
Signs a transaction and broadcasts onchain
okxSolanaProvider.signAndSendTransaction(transaction, chain);
**Request Parameters
**Return Value
get wallet address and pubKey
okxSolanaProvider.getAccount(chain);
Request Parameters
**Return Value
Example
// Signing a transfer transaction on solana mainnet
let provider = new OKXSolanaProvider(okxUniversalProvider)
const transaction = new Transaction({
feePayer: new PublicKey(provider.getAccount().address),
recentBlockhash: "xNWbUfdEPktMsZQHY6Zk5RJqamWFcTKasekjr7c3wFX",
}).add(SystemProgram.transfer(
{
fromPubkey: new PublicKey(provider.getAccount().address),
toPubkey: new PublicKey(provider.getAccount().address),
lamports: 1000,
}
))
let result = await provider.signTransaction(transaction, "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp")
Disconnect from a connected wallet and delete the current session. If you want to switch wallets, disconnect from the current wallet first.
okxUniversalProvider.disconnect();