BTC
const provider = window.bitkeep.unisat
const provider = window.bitkeep.unisat
This feature is supported by the following versions of Bitget Wallet.
Platform | Version | Description |
---|---|---|
Chrome Extension | >=v2.1.1 | mainnet |
App(IOS) | >= 7.3.9 | mainnet |
App(Android) | >= 7.3.9 | mainnet |
Note
Some methods may have exceptions and will be supported in new versions
Platform | Version | function |
---|---|---|
Chrome Extension | >=v2.2.0 | getBalance, getInscriptions, pushTx |
App(IOS) | >= 8.8.0 | getBalance, getInscriptions, pushTx |
App(Android) | >= 8.8.0 | getBalance, getInscriptions, pushTx |
requestAccounts
Connecting to Bitget Wallet
Parameters:
- none
Returns:
- Promise returns string[]: Address of current account.
try {
let accounts = await unisat.requestAccounts();
console.log('connect success', accounts);
} catch (e) {
console.log('connect failed');
}
> connect success ['tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz']
try {
let accounts = await unisat.requestAccounts();
console.log('connect success', accounts);
} catch (e) {
console.log('connect failed');
}
> connect success ['tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz']
getAccounts
Get address of current account
Parameters:
- none
Returns:
- Promise - string: Address of current account.
try {
let res = await unisat.getAccounts();
console.log(res)
} catch (e) {
console.log(e);
}
> ["tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz"]
try {
let res = await unisat.getAccounts();
console.log(res)
} catch (e) {
console.log(e);
}
> ["tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz"]
getNetwork
Get address of current account
Parameters:
- none
Returns:
- Promise - string: the network.
livenet
|testnet
|signet
try {
let res = await unisat.getNetwork();
console.log(res)
} catch (e) {
console.log(e);
}
> 'livenet'
try {
let res = await unisat.getNetwork();
console.log(res)
} catch (e) {
console.log(e);
}
> 'livenet'
switchNetwork
switch network
Parameters:
- network - string: the network.
livenet
|testnet
|signet
Returns
- none
try {
let res = await unisat.switchNetwork("livenet");
console.log(res)
} catch (e) {
console.log(e);
}
> 'livenet'
try {
let res = await unisat.switchNetwork("livenet");
console.log(res)
} catch (e) {
console.log(e);
}
> 'livenet'
getPublicKey
Get publicKey of current account.
Parameters:
- none
Returns:
- Promise - string: publicKey
try {
let res = await unisat.getPublicKey();
console.log(res)
} catch (e) {
console.log(e);
}
> "03cbaedc26f03fd3ba02fc936f338e980c9e2172c5e23128877ed46827e935296f"
try {
let res = await unisat.getPublicKey();
console.log(res)
} catch (e) {
console.log(e);
}
> "03cbaedc26f03fd3ba02fc936f338e980c9e2172c5e23128877ed46827e935296f"
getBalance
Get BTC balance
Parameters:
- none
Returns:
- Promise - Object
- confirmed - number : the confirmed satoshis
- unconfirmed - numbet: the unconfirmed satoshis
- total - number: the total satoshis
try {
let res = await unisat.getBalance();
console.log(res)
} catch (e) {
console.log(e);
}
> {
"confirmed":0,
"unconfirmed":100000,
"total":100000
}
try {
let res = await unisat.getBalance();
console.log(res)
} catch (e) {
console.log(e);
}
> {
"confirmed":0,
"unconfirmed":100000,
"total":100000
}
getInscriptions
List inscriptions of current account
Parameters:
- none
Returns:
- Promise - Object
- total - number : the total count
- list - Object[] :
- inscriptionId - string : the id of inscription.
- inscriptionNumber - string : the number of inscription.
- address - string : the address of inscription.
- outputValue - string : the output value of inscription.
- content - string : the content url of inscription.
- contentLength - string : : the content length of inscription.
- contentType - number : the content type of inscription.
- preview - number : the preview link
- timestamp - number : the blocktime of inscription.
- offset - number : the offset of inscription.
- genesisTransaction - string : the txid of genesis transaction
- location - string : the txid and vout of current location
try {
let res = await unisat.getInscriptions(0,10);
console.log(res)
} catch (e) {
console.log(e);
}
> {
"total":10,
"list":[
{
inscriptionId: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
inscriptionNumber: 959941,
address: 'bc1q8h8s4zd9y0lkrx334aqnj4ykqs220ss735a3gh',
outputValue: 546,
preview: 'https://ordinals.com/preview/6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
content: 'https://ordinals.com/content/6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
contentLength: 53,
contentType: 'text/plain;charset=utf-8',
timestamp: 1680865285,
genesisTransaction: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531',
location: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0:0',
output: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0',
offset: 0
}
]
}
try {
let res = await unisat.getInscriptions(0,10);
console.log(res)
} catch (e) {
console.log(e);
}
> {
"total":10,
"list":[
{
inscriptionId: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
inscriptionNumber: 959941,
address: 'bc1q8h8s4zd9y0lkrx334aqnj4ykqs220ss735a3gh',
outputValue: 546,
preview: 'https://ordinals.com/preview/6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
content: 'https://ordinals.com/content/6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
contentLength: 53,
contentType: 'text/plain;charset=utf-8',
timestamp: 1680865285,
genesisTransaction: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531',
location: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0:0',
output: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0',
offset: 0
}
]
}
sendBitcoin
Send BTC
Parameters:
- toAddress - to: the address to send
- satoshis - the satoshis to send
- options - object: (optional)
- feeRate - number: the network fee rate
Returns:
- Promise - string: the txid
try {
let txid = await unisat.sendBitcoin("tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz",1000);
console.log(txid)
} catch (e) {
console.log(e);
}
try {
let txid = await unisat.sendBitcoin("tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz",1000);
console.log(txid)
} catch (e) {
console.log(e);
}
sendInscription
Send Inscription
Parameters:
- address - string: the receiver address.
- inscriptionId - the id of Inscription
- options - Object: (optional)
- feeRate - number: the network fee rate
Returns:
- Promise - Object:
- txid - string : the txid
try {
let { txid } = await unisat.sendInscription("tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny","e9b86a063d78cc8a1ed17d291703bcc95bcd521e087ab0c7f1621c9c607def1ai0",{feeRate:15});
console.log("send Inscription 204 to tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny",{txid})
} catch (e) {
console.log(e);
}
try {
let { txid } = await unisat.sendInscription("tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny","e9b86a063d78cc8a1ed17d291703bcc95bcd521e087ab0c7f1621c9c607def1ai0",{feeRate:15});
console.log("send Inscription 204 to tb1q8h8s4zd9y0lkrx334aqnj4ykqs220ss7mjxzny",{txid})
} catch (e) {
console.log(e);
}
signMessage
提示
Params type
chrome extension >= v2.2.2
supported And App come soon .
sign message
Parameters:
- msg - string: a string to sign
- type - string: (Optional) "ecdsa" | "bip322-simple". default is "ecdsa".
Returns:
- Promise - string: the signature result.
// sign by ecdsa
try {
let res = await provider.signMessage("abcdefghijk123456789");
console.log(res)
} catch (e) {
console.log(e);
}
> G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=
// verify by ecdsa
import { verifyMessage } from "@unisat/wallet-utils";
const pubkey = "026887958bcc4cb6f8c04ea49260f0d10e312c41baf485252953b14724db552aac";
const message = "abcdefghijk123456789";
const signature = "G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=";
const result = verifyMessage(pubkey,message,signature);
console.log(result);
> true
// sign by bip322-simple
try {
let res = await window.unisat.signMessage("abcdefghijk123456789","bip322-simple");
console.log(res)
} catch (e) {
console.log(e);
}
> AkcwRAIgeHUcjr0jODaR7GMM8cenWnIj0MYdGmmrpGyMoryNSkgCICzVXWrLIKKp5cFtaCTErY7FGNXTFe6kuEofl4G+Vi5wASECaIeVi8xMtvjATqSSYPDRDjEsQbr0hSUpU7FHJNtVKqw=
// sign by ecdsa
try {
let res = await provider.signMessage("abcdefghijk123456789");
console.log(res)
} catch (e) {
console.log(e);
}
> G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=
// verify by ecdsa
import { verifyMessage } from "@unisat/wallet-utils";
const pubkey = "026887958bcc4cb6f8c04ea49260f0d10e312c41baf485252953b14724db552aac";
const message = "abcdefghijk123456789";
const signature = "G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=";
const result = verifyMessage(pubkey,message,signature);
console.log(result);
> true
// sign by bip322-simple
try {
let res = await window.unisat.signMessage("abcdefghijk123456789","bip322-simple");
console.log(res)
} catch (e) {
console.log(e);
}
> AkcwRAIgeHUcjr0jODaR7GMM8cenWnIj0MYdGmmrpGyMoryNSkgCICzVXWrLIKKp5cFtaCTErY7FGNXTFe6kuEofl4G+Vi5wASECaIeVi8xMtvjATqSSYPDRDjEsQbr0hSUpU7FHJNtVKqw=
pushTx
Push Transaction
Parameters
- options - Object:
- rawtx - string: rawtx to push
Returns:
- Promise - string: the txid
try {
let txid = await unisat.pushTx({
rawtx:"0200000000010135bd7d..."
});
console.log(txid)
} catch (e) {
console.log(e);
}
try {
let txid = await unisat.pushTx({
rawtx:"0200000000010135bd7d..."
});
console.log(txid)
} catch (e) {
console.log(e);
}
signPsbt
Sign PSBT This method will traverse all inputs that match the current address to sign.
Parameters:
- psbtHex - string: the hex string of psbt to sign
- options - object
- autoFinalized - boolean: whether finalize psbt after signing, default is true
- toSignInputs - array:
- index - number: which input to sign
- address - string: (at least specify either an address or a publicKey) Which corresponding private key to use for signing
- publicKey - string: (at least specify either an address or a publicKey) Which corresponding private key to use for signing
- sighashTypes - number[]: (optionals) sighashTypes
- disableTweakSigner - boolean :(optionals) When signing and unlocking Taproot addresses, the tweakSigner is used by default for signature generation. Enabling this allows for signing with the original private key.
Returns:
- Promise - string: the hex string of signed psbt
try {
let res = await unisat.signPsbt(
"70736274ff01007d....",
{
autoFinalized:false,
toSignInputs:[
{
index: 0,
address: "tb1q8h8....mjxzny",
},
{
index: 1,
publicKey: "tb1q8h8....mjxzny",
sighashTypes: [1]
},
{
index: 2,
publicKey: "02062...8779693f",
}
]
}
);
console.log(res)
} catch (e) {
console.log(e);
}
try {
let res = await unisat.signPsbt(
"70736274ff01007d....",
{
autoFinalized:false,
toSignInputs:[
{
index: 0,
address: "tb1q8h8....mjxzny",
},
{
index: 1,
publicKey: "tb1q8h8....mjxzny",
sighashTypes: [1]
},
{
index: 2,
publicKey: "02062...8779693f",
}
]
}
);
console.log(res)
} catch (e) {
console.log(e);
}
signPsbts
Sign Multiple PSBTs at once This method will traverse all inputs that match the current address to sign.
Parameters:
- psbtHexs - string[]: the hex strings of psbt to sign
- options - object[]: the options of signing psbt
- autoFinalized - boolean: whether finalize psbt after signing, default is true
- toSignInputs - array:
- index - number: which input to sign
- address - string: (at least specify either an address or a publicKey) Which corresponding private key to use for signing
- publicKey - string:(at least specify either an address or a publicKey) Which corresponding private key to use for signing
- sighashTypes - number[]: (optionals) sighashTypes
- disableTweakSigner - boolean: (optionals) When signing and unlocking Taproot addresses, the tweakSigner is used by default for signature generation. Enabling this allows for signing with the original private key.
Returns:
- Promise - string[]: the hex strings of signed psbt
try {
let res = await unisat.signPsbts(["70736274ff01007d...","70736274ff01007d..."]);
console.log(res)
} catch (e) {
console.log(e);
}
try {
let res = await unisat.signPsbts(["70736274ff01007d...","70736274ff01007d..."]);
console.log(res)
} catch (e) {
console.log(e);
}
pushPsbt
Push transaction
Parameters:
- psbtHex - string: the hex string of psbt to push
Returns:
- Promise - string: the txid
try {
let res = await unisat.pushPsbt("70736274ff01007d....");
console.log(res)
} catch (e) {
console.log(e);
}
try {
let res = await unisat.pushPsbt("70736274ff01007d....");
console.log(res)
} catch (e) {
console.log(e);
}