We currently support message signing and verifying for utxo and evm chains.
Chain Index | Chain Name | Coin/Short Name | Chain type | Prefix for UTXO | Remark | |
---|---|---|---|---|---|---|
1 | 0 | BTC | btc | BTC | "Bitcoin" | |
2 | 1 | Ethereum | eth | EVM | ||
3 | 2 | Litecoin | LTC | BTC | "Litecoin" | |
4 | 3 | Dogecoin | DOGE | BTC | "Dogecoin" | |
6 | 10 | Optimism | Optimism | EVM | ||
7 | 14 | Flare | Flr | EVM | ||
8 | 25 | Cronos | Cronos | EVM | ||
9 | 56 | BNB Smart Chain | bsc | EVM | ||
10 | 61 | Ethereum Classic | ETC | EVM | ||
11 | 66 | OKTC | okt | EVM | Only evm addresses are supported | |
12 | 100 | Gnosis | XDAI | EVM | ||
14 | 137 | Polygon | matic | EVM | ||
15 | 145 | Bitcoin Cash | BCH | BTC | "Bitcoin" | |
16 | 169 | Manta Pacific | Manta | EVM | ||
17 | 204 | opBNB | op_bnb | EVM | ||
18 | 236 | BitcoinSV | BSV | BTC | "Bitcoin" | |
19 | 250 | Fantom | ftm | EVM | ||
20 | 288 | Boba | BOBA | EVM | ||
21 | 314 | Filecoin | FIL | EVM | Only evm addresses are supported | |
22 | 321 | KCC | KCC | EVM | ||
23 | 324 | zkSync Era | ZKSync2 | EVM | ||
24 | 369 | PulseChain | PLS | |||
25 | 408 | Omega Network | Omega | EVM | ||
26 | 648 | Endurance | ACE | EVM | ||
27 | 1030 | Conflux | cfx | EVM | ||
28 | 1088 | Metis | METIS | EVM | ||
29 | 1101 | Polygon zkEVM | PolygonZK | EVM | ||
30 | 1111 | Wemix 3.0 | wemix | EVM | ||
31 | 1116 | Core | core | EVM | ||
32 | 2020 | Ronin | RONIN | EVM | ||
33 | 2222 | Kava EVM | EVM_KAVA | EVM | ||
34 | 42161 | Arbitrum One | Arbitrum | EVM | ||
35 | 42170 | Arbitrum Nova | Nova | EVM | ||
36 | 42220 | Celo | Celo | EVM | ||
37 | 43114 | Avalanche C | avax | EVM | ||
38 | 59144 | Linea | linea_eth | EVM | ||
39 | 7000 | ZetaChain Mainnet | ZETACHAIN_MAINNET | EVM | ||
40 | 8217 | Klaytn | Klay | EVM | ||
41 | 81457 | Blast | Blast | EVM | ||
42 | 10001 | EthereumPoW | ETHW | EVM | ||
43 | 4200 | Merlin Chain | Merlin_Chain | EVM | ||
44 | 534352 | Scroll | Scroll_eth | EVM | ||
45 | 11155111 | Sepolia | SEPOLIA_ETH | EVM | ||
46 | 13371 | Immutable zkEVM | Immutable_zkEVM | EVM | ||
51 | 1101 | Polygon zkEVM | PolygonZK | EVM | ||
52 | 1111 | Wemix 3.0 | wemix | EVM | ||
53 | 324 | zkSync Era | ZKSync2 | EVM | ||
54 | 13371 | Immutable zkEVM | Immutable_zkEVM | EVM | ||
47 | 1313161554 | Aurora | Aurora | EVM | ||
48 | 1284 | Moonbeam | GLMR | EVM | ||
49 | 1285 | Moonriver | MOVR | EVM | ||
50 | 1666600000 | Harmony | one | EVM | ||
51 | 513100 | DIS CHAIN | DIS | EVM | ||
52 | 5000 | Mantle | Mantle | EVM | ||
53 | 8453 | Base | base_eth | EVM | ||
54 | 11235 | HAQQ Network | HAQQ | EVM | ||
55 | 70000038 | BTC Testnet | TBTC | BTC | "Bitcoin" |
npm install @okxweb3/coin-ethereum
import eth from "@okxweb3/coin-ethereum";
const privateKey = "0x49c0722d56d6bac802bdf5c480a17c870d1d18bc4355d8344aa05390eb778280";
var msg = '' + Date.parse(new Date());
console.log('msg', msg)
const account = eth.getNewAddress(privateKey)
console.log('address',account.address)
let data = {
type: eth.MessageTypes.PERSONAL_SIGN,
message: msg
};
let wallet = new eth.EthWallet()
let signParams = {
privateKey: privateKey,
data: data
};
let result = await wallet.signMessage(signParams);
console.info('signed result',result)
let verifyMessageParams = {
signature: result,
data: data,
address: account.address
};
console.log("verifying message params",verifyMessageParams)
const verified =await wallet.verifyMessage(verifyMessageParams)
console.info("verified",verified)
address 0xd74c65ad81aa8537327e9ba943011a8cec7a7b6b signed result 0x4bb3e90eaec979f74c9ebb8c9c26dc364dc79dec792744b7234c28029647a3836994c3cd22506609001fe89f8042becd773495ee4f03bac0cbda28836d02b6021b verifying message params { signature: '0x4bb3e90eaec979f74c9ebb8c9c26dc364dc79dec792744b7234c28029647a3836994c3cd22506609001fe89f8042becd773495ee4f03bac0cbda28836d02b6021b', data: { type: 1, message: '1718623781000' }, address: '0xd74c65ad81aa8537327e9ba943011a8cec7a7b6b' } verified true
npm install @okxweb3/coin-bitcoin
import bitcoin from "@okxweb3/coin-bitcoin";
var msg = '' + Date.parse(new Date());
console.log('msg', msg)
let wallet = new bitcoin.BtcWallet()
const privateKey = 'KwTqEP5swztao5UdMWpxaAGtvmvQFjYGe1UDyrsZxjkLX9KVpN36'
let account = await wallet.getNewAddress({privateKey: privateKey})
console.log('account', account)
let signParams = {
privateKey: privateKey,
data: {
type: 0,
address: account.address,
message: msg,
}
};
let result = await wallet.signMessage(signParams)
console.info('signed result', result)
let verifyMessageParams = {
signature: result,
data: {
message: msg,
type: 0,
publicKey: account.publicKey,
}
};
const verified = await wallet.verifyMessage(verifyMessageParams)
console.info("verified", verified)
msg 1718618813000 account { address: '1GhLyRg4zzFixW3ZY5ViFzT4W5zTT9h7Pc', publicKey: '03052b16e71e4413f24f8504c3b188b7edebf97b424582877e4993ef9b23d0f045', compressedPublicKey: '03052b16e71e4413f24f8504c3b188b7edebf97b424582877e4993ef9b23d0f045' } signed result H6VOSqdfKpVNTAI1L5OQFrjQBT13D4C1T7/DAAdFYLGxc95szQFUkqVNLQo5Fc+9k4fu2tgsT1H2taiVlrFJ4yw= verified true
import bitcoin from "@okxweb3/coin-bitcoin";
let dogeWallet = new bitcoin.DogeWallet()
let tBtcWallet= new bitcoin.TBtcWallet()
let bchWallet = new bitcoin.BchWallet()
let bsvWallet = new bitcoin.BsvWallet()
import bitcoin from "@okxweb3/coin-bitcoin";
var msg = '' + Date.parse(new Date());
console.log('msg', msg)
let wallet = new bitcoin.DogeWallet()
let signParams = {
privateKey: "QUKYRpo8QXbXNwKJGtAy8HX71XkejfE8Xs4kvN8s2ksvRMK72W4Y",
data: {
"address": "D9jYpWwNkcwifh9GR2BUPE4uMPPWtNZrLn",
message: msg,
}
};
let res = await wallet.signMessage(signParams)
console.log(res)
let veryParams = {
signature: res,
data: {
message: msg,
publicKey: '020834928459fa93692af94c290d2a6c9e8ac0f63ddda8cdf982efa1483e9bcebd',
}
};
let veryfied = await wallet.verifyMessage(veryParams)
console.log(veryfied)