description |
---|
A thin JSON-RPC wrapper for interacting with chains and Blocto wallet. |
Blocto SDK comes with an EIP-1193 compatible provider, you can use it to interact with EVM-compatible chains.
{% hint style="info" %} Note that Blocto SDK for EVM-compatible chains is still in Beta. APIs are subject to breaking changes. {% endhint %}
Install from npm/yarn/pnpm
{% tabs %} {% tab title="npm" %}
npm i @blocto/sdk
{% endtab %}
{% tab title="yarn" %}
yarn add @blocto/sdk
{% endtab %}
{% tab title="pnpm" %}
pnpm add @blocto/sdk
{% endtab %} {% endtabs %}
... or via CDN
<script src="https://unpkg.com/@blocto/sdk" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
After SDK 0.9.0
, you can load all evm-compatiable chains once when initiating.
Parameter | Type | Description | Required |
---|---|---|---|
defaultChainId | string (hex) | Hexadecimal chainId | Yes |
switchableChains | Array
| Array of AddEthereumChainParameter | Yes |
const bloctoSDK = new BloctoSDK({
ethereum: {
defaultChainId: '0x1',
switchableChains: [
{
chainId: '0x1',
rpcUrls: ['https://mainnet.infura.io/v3/...'],
},
{
chainId: '0xa4b1',
rpcUrls: ['https://arb1.arbitrum.io/rpc'],
},
...
],
},
// (optional) Blocto app ID
appId: 'YOUR_BLOCTO_APP_ID',
})
Before 0.9.0
, you can only initiate with one evm-compatiable chain.
Parameter | Type | Description | Required |
---|---|---|---|
ethereum.chainId | String (hex) Number | EVM chain ID to connect to Reference: EVM Networks | Yes |
ethereum.rpc | String | JSON RPC endpoint | Yes |
appId | String | Blocto dApp ID | No |
import BloctoSDK from '@blocto/sdk'
const bloctoSDK = new BloctoSDK({
ethereum: {
// (required) chainId to be used
chainId: '0x1',
// (required) JSON RPC endpoint
rpc: 'https://mainnet.infura.io/v3/YOUR_INFURA_ID',
},
// (optional) Blocto app ID
appId: 'YOUR_BLOCTO_APP_ID',
});
Network | Chain ID |
---|---|
Ethereum Mainnet | 1 |
Ethereum Sepolia Testnet | 11155111 |
Arbitrum Mainnet | 42161 |
Arbitrum Sepolia | 421614 |
Optimism Mainnet | 10 |
Optimism Sepolia | 11155420 |
Polygon Mainnet | 137 |
Polygon Amoy Testnet | 80002 |
BSC Mainnet | 56 |
BSC Chapel Testnet | 97 |
Avalanche Mainnet | 43114 |
Avalanche Fuji Testnet | 43113 |
Base Mainnet | 8453 |
Base Sepolia | 84532 |
Zora Mainnet | 7777777 |
Zora Sepolia | 999999999 |
Scroll Mainnet | 534352 |
Scroll Sepolia Testnet | 534351 |
Once the connection request is fired, there would be a prompt modal to guide user to register/login to Blocto wallet
// EIP-1193 way (recommended)
const accounts = bloctoSDK.ethereum.request({ method: 'eth_requestAccounts' })
// Alternative: EIP-1102 way
// CAVEATS! it's deprecated and may be removed from future version
const accounts = await bloctoSDK.ethereum.enable()
After connected with Blocto wallet, you can start to send JSON-RPC request with blocto provider
// sign a message
bloctoSDK.ethereum.request({
method: 'eth_sign',
params: ["0xyourethaddress", "0x48656c6c6f20776f726c64"]
})