Download

arrow_down

Developer sercices

arrow_down

More

arrow_down
activityactivityactivityactivity
  • themelight
  • languageIcon

  • menu
Skip to Content

Standard Wallet Methods

MethodParametersReturn TypeDescription
enable()PromiseConnection method, returns account information
isConnected()booleanGets connection status
addCurrency()PromiseAdds a token
switchChain(method, data)PromiseSwitches blockchain network
disconnect()PromiseDisconnects the wallet
signPersonalMessage(data)PromiseSigns a personal message
signTypedMessage(data)PromiseSigns a typed message
request(payload, callback)PromiseGeneral eth call method. payload.method can be eth_sign, personal_sign, eth_sendTransaction, eth_accounts, etc. callback is called after the method executes

Connect to Bitget Wallet

Provider

const provider = window.bitkeep.ethereum

enable

Preview

used to request account access from the user’s Ethereum wallet

Usage

/** * @returns {*} [ address ] address list / await provider.enable()

Try It

Loading live editor...

isConnected

  • ethereum.isConnected() checks if the wallet is currently connected to the dApp.
  • Returns true if the provider is connected, and false otherwise.

Usage

/** * @returns {*} Boolean : if connected the wallet / await provider.isConnected()

Try It

Loading live editor...

Manage networks

wallet_swithEthereumChain

Preview

wallet_switchEthereumChain is a method provided by Ethereum-compatible wallets (like Bitget) that allows decentralized applications (dApps) to request the user to switch their wallet to a different blockchain network.

Usage

interface SwitchEthereumChainParams { method: 'wallet_switchEthereumChain'; params: { chainId: string; // 例如 '0xA4B1' }[]; } /* * @param SwitchEthereumChainParams */ await provider.request(switchEthereumChainParams)

Try It

Loading live editor...

wallet_AddEthereumChain

wallet_addEthereumChain is a method used by Ethereum-compatible wallets (like Bitget) that allows a decentralized application (dApp) to programmatically request the user to add a new blockchain network to their wallet.

Usage

interface AddEthereumChainParams { method: 'wallet_switchEthereumChain'; params: { chainId: string; // 例如 '0xA4B1' }[]; } /* * @param SwitchEthereumChainParams */ await provider.request(addEthereumChainParams)

Try It

Loading live editor...

Sign Data

SignPersonalMessage

Chrome
App
Preview
Preview

personal_sign (commonly referred to as signPersonalMessage) is used to sign arbitrary text messages with a user’s Ethereum private key.

Usage

interface PersonalSignMessage { method: string; params: { msgHex: string; // the message you sign, must convert to hex from: string; // user account address }; } /** * @param {*} PersonalSignMessage : * @returns {*} Boolean : if connected the wallet / await provider.signPersonalMessage(message)

Try It

Loading live editor...

SignTypedData

Chrome
App
Preview
Preview

The eth_signTypedData function (or eth_signTypedData_v4 specifically) is used to sign structured data according to the EIP-712 standard. This standard allows applications to create cryptographic signatures for complex and structured data, ensuring that the signature is both human-readable and verifiable.

Usage

interface EIP712Domain { name: string; version: string; chainId: number; verifyingContract: string; } interface Person { name: string; wallet: string; } interface Mail { from: Person; to: Person; contents: string; } interface TypedDataField { name: string; type: string; } interface TypedData { types: { EIP712Domain: TypedDataField[]; [key: string]: TypedDataField[]; }; domain: EIP712Domain; primaryType: string; message: Record<string, any>; } interface SignTypedDataV4Param { method: 'eth_signTypedData_v4'; params: [string, string] // account and JSON.stringify(typedData) } /* * @param signTypedDataV4Param * @returns string : signature */ provider.request({ method: 'eth_signTypedData_v4', params: [account, data ], });

Try It

Loading live editor...

wallet_watchAsset

EIP-747

Specified by the EIP-747 standard.

Parameters

  • WatchAssetParams - Metadata of the asset to be watched.
interface WatchAssetParams { type: 'ERC20'; // In the future, other standards will be supported options: { address: string; // The address of the token contract 'symbol': string; // A ticker symbol or shorthand, up to 11 characters decimals: number; // The number of token decimals image: string; // A string url of the token logo }; }

Returns

boolean - True if the token is added, otherwise false.

Description

Requests the user to track a token in Bitget Wallet. Returns a boolean indicating whether the token was successfully added.

Ethereum wallets support a set of tokens, usually from a centrally managed token registry. wallet_watchAsset allows web3 application developers to request their users to track tokens in their wallet at runtime. Once added, the token is indistinguishable from tokens added through traditional methods (e.g., centralized registries).

Provider .request({ method: 'wallet_watchAsset', params: { type: 'ERC20', options: { address: '0xb60e8dd61c5d32be8058bb8eb970870f07233155', symbol: 'FOO', decimals: 18, image: 'https://foo.io/token-image.svg', }, }, }) .then((success) => { if (success) { console.log('FOO successfully added to wallet!'); } else { throw new Error('Something went wrong.'); } }) .catch(console.error);

Transaction

Chrome
App
Preview
Preview
const transactionParameters = { nonce: '0x00', // ignored by Bitkeep gasPrice: '0x09184e72a000', // customizable by user during Bitkeep confirmation. gas: '0x2710', // customizable by user during Bitkeep confirmation. to: '0x0000000000000000000000000000000000000000', // Required except during contract publications. from: Provider.selectedAddress, // must match user's active address. value: '0x00', // Only required to send ether to the recipient from the initiating external account. data: '0x7f7465737432000000000000000000000000000000000000000000000000000000600057', // Optional, but used for defining smart contract creation and interaction. chainId: '0x3', // Used to prevent transaction reuse across blockchains. Auto-filled by Bitkeep. }; // txHash is a hex string // As with any RPC call, it may throw an error const txHash = await Provider.request({ method: 'eth_sendTransaction', params: [transactionParameters], }); // if used web3 const accounts = await Provider.request({ method: 'eth_requestAccounts' }); const web3 = new Web3(Provider); const result = await web3.eth.sendTransaction({ from: Provider.selectedAddress, to: '0x0000000000000000000000000000000000000000', value: web3.utils.toWei('1', 'ether'), });
Last updated on