Installation and Initialization
To integrate OKX Connect into your decentralized application (DApp), ensure you're using version 6.92.0 or later. Install via npm:
OKXUniversalProvider.init({
dappMetaData: {
name: "YourDAppName",
icon: "https://your-icon-url.png" // 180x180px PNG recommended
}
})Parameters
dappMetaData(object):name(string): Application name (non-unique identifier)icon(string): URL to PNG/ICO icon (SVG not supported)
Returns
OKXUniversalProviderinstance
Connecting to a Wallet
Establish wallet connection to retrieve addresses and transaction-signing parameters:
okxUniversalProvider.connect({
namespaces: {
chains: ["eip155:1"], // EVM chains
defaultChain: "eip155:1"
},
sessionConfig: {
redirect: "tg://resolve" // Telegram Mini App deeplink
}
})Parameters
namespaces: Required chains (e.g.,eip155for EVM,btcfor Bitcoin)optionalNamespaces: Additional supported chainssessionConfig: Post-connection redirect settings
Returns
- Session details including accounts, methods, and default chain
Wallet Connection Status
Check active connection status:
const isConnected = okxUniversalProvider.isConnected();Returns
boolean: Connection state
Transaction Signing & Sending
BTC Provider Setup
const okxBtcProvider = new OKXBtcProvider(okxUniversalProvider);Get Account Details
const account = okxBtcProvider.getAccount("btc:mainnet");Parameters
chainId: Network identifier (e.g.,btc:mainnet)
Returns
- Object with
addressandpublicKey
Sign Messages
const signature = await okxBtcProvider.signMessage(
"btc:mainnet",
"message_to_sign",
"ecdsa" // Optional type
);Send BTC Transactions
const result = await okxBtcProvider.send("btc:mainnet", {
from: "sender_address",
to: "recipient_address",
value: "0.01",
memo: "Payment reference" // Optional
});PSBT Operations
signPsbt(): Sign partially signed Bitcoin transactionssignAndPushPsbt(): Sign and broadcast PSBTs (App โฅ6.93.0 required)
Disconnecting Wallets
Terminate active sessions:
okxUniversalProvider.disconnect();Error Handling
| Code | Description |
|---|---|
| 4001 | User rejected request |
| 4100 | Wallet not connected |
| 4200 | Unsupported chain/method |
FAQ
Q: Can I use SVG icons for my DApp?
A: No - only PNG/ICO formats are supported for wallet connections.
Q: How do I specify custom transaction fees?
A: Use the feeRate parameter in sendBitcoin() or satBytes in send().
Q: What happens if a user rejects the connection?
A: The promise rejects with error code 4001 ("User Rejected").
๐ Explore advanced BTC API features
๐ View full error code documentation