Specification
Required APIs with Examples and Common Error Codes (Using OKX as Example)
Window Global Variable Name
// Get OKX wallet instance
const okx = (window as any).okxwallet;
// Get wallet API for different networks
const getWalletApi = (network: "livenet" | "testnet") => {
const networkAttr = {
livenet: "bitcoin",
testnet: "bitcoinTestnet",
};
return okx[networkAttr[network]];
};\
Connect Wallet Method
interface ConnectParams {
network: "livenet" | "testnet";
chain?: "BITCOIN_MAINNET" | "BITCOIN_TESTNET" | "BITCOIN_TESTNET4" | "FRACTAL_BITCOIN_MAINNET" | "FRACTAL_BITCOIN_TESTNET";
handleMismatchChain?: boolean;
}
interface ConnectResult {
name: "okx";
network: "livenet" | "testnet";
publicKey: string;
accounts: string[];
address: string;
btcAddress: string;
btcPublicKey: string;
balance?: {
confirmed?: number;
total?: number;
unconfirmed?: number;
};
chain?: string;
}
// Connect wallet
const connect = async (params: ConnectParams): Promise<ConnectResult> => {
const { network, chain, handleMismatchChain } = params;
const okx = getWalletApi(network);
try {
const info = await okx.connect();
const { publicKey, address, compressedPublicKey } = info;
let balance;
if (network === "livenet") {
balance = await okx.getBalance();
}
return {
name: "okx",
network,
publicKey,
accounts: [address],
address,
btcAddress: address,
btcPublicKey: compressedPublicKey,
balance,
chain,
};
} catch (error) {
throw {
code: error.code || 1,
msg: error.msg || error.message || "Connection failed",
success: false,
};
}
};\
Disconnect Wallet Method
\
Sign Method
\
Sign PSBT Method
\
Send BTC Method
\
Sign PSBTs Method
\
Account Switch Monitoring Event
\
Last updated