Getting Started
Quick Start
Get started with @sei-js/precompiles in minutes
Quick Start Guide
Get up and running with @sei-js/precompiles
in just a few minutes. Choose your preferred approach below.
1
Install Dependencies
Copy
Ask AI
npm install @sei-js/precompiles viem
2
Create a Client
Copy
Ask AI
import { createPublicClient, http } from 'viem';
import { seiTestnet } from '@sei-js/precompiles/viem';
const client = createPublicClient({
chain: seiTestnet,
transport: http()
});
3
Query a Precompile
Copy
Ask AI
import {
BANK_PRECOMPILE_ABI,
BANK_PRECOMPILE_ADDRESS
} from '@sei-js/precompiles/viem';
// Get SEI balance
const balance = await client.readContract({
address: BANK_PRECOMPILE_ADDRESS,
abi: BANK_PRECOMPILE_ABI,
functionName: 'balance',
args: ['0x...', 'usei']
});
console.log('Balance:', balance.toString());
4
Connect a Wallet (Optional)
Copy
Ask AI
import { createWalletClient, custom } from 'viem';
const walletClient = createWalletClient({
chain: seiTestnet,
transport: custom(window.ethereum)
});
Complete Viem Example
Copy
Ask AI
import { createPublicClient, http, formatEther } from 'viem';
import {
seiTestnet,
BANK_PRECOMPILE_ABI,
BANK_PRECOMPILE_ADDRESS
} from '@sei-js/precompiles/viem';
// Create client
const publicClient = createPublicClient({
chain: seiTestnet,
transport: http()
});
// Get user's SEI balance
async function getUserBalance(userAddress: string) {
const balance = await publicClient.readContract({
address: BANK_PRECOMPILE_ADDRESS,
abi: BANK_PRECOMPILE_ABI,
functionName: 'balance',
args: [userAddress, 'usei']
});
return formatEther(balance);
}
// Usage
const userAddress = '0x...';
const balance = await getUserBalance(userAddress);
console.log(`Balance: ${balance} SEI`);
1
Install Dependencies
Copy
Ask AI
npm install @sei-js/precompiles viem
2
Create a Client
Copy
Ask AI
import { createPublicClient, http } from 'viem';
import { seiTestnet } from '@sei-js/precompiles/viem';
const client = createPublicClient({
chain: seiTestnet,
transport: http()
});
3
Query a Precompile
Copy
Ask AI
import {
BANK_PRECOMPILE_ABI,
BANK_PRECOMPILE_ADDRESS
} from '@sei-js/precompiles/viem';
// Get SEI balance
const balance = await client.readContract({
address: BANK_PRECOMPILE_ADDRESS,
abi: BANK_PRECOMPILE_ABI,
functionName: 'balance',
args: ['0x...', 'usei']
});
console.log('Balance:', balance.toString());
4
Connect a Wallet (Optional)
Copy
Ask AI
import { createWalletClient, custom } from 'viem';
const walletClient = createWalletClient({
chain: seiTestnet,
transport: custom(window.ethereum)
});
Complete Viem Example
Copy
Ask AI
import { createPublicClient, http, formatEther } from 'viem';
import {
seiTestnet,
BANK_PRECOMPILE_ABI,
BANK_PRECOMPILE_ADDRESS
} from '@sei-js/precompiles/viem';
// Create client
const publicClient = createPublicClient({
chain: seiTestnet,
transport: http()
});
// Get user's SEI balance
async function getUserBalance(userAddress: string) {
const balance = await publicClient.readContract({
address: BANK_PRECOMPILE_ADDRESS,
abi: BANK_PRECOMPILE_ABI,
functionName: 'balance',
args: [userAddress, 'usei']
});
return formatEther(balance);
}
// Usage
const userAddress = '0x...';
const balance = await getUserBalance(userAddress);
console.log(`Balance: ${balance} SEI`);
1
Install Dependencies
Copy
Ask AI
npm install @sei-js/precompiles ethers
2
Create a Provider
Copy
Ask AI
import { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider(
'https://evm-rpc-testnet.sei-apis.com'
);
3
Get Contract Instance
Copy
Ask AI
import { getBankPrecompileEthersContract } from '@sei-js/precompiles/ethers';
// Get contract instance with factory
const bankContract = getBankPrecompileEthersContract(provider);
4
Query the Contract
Copy
Ask AI
// Get user's SEI balance
async function getUserBalance(userAddress: string) {
const balance = await bankContract.balance(userAddress, 'usei');
return ethers.formatEther(balance);
}
const userAddress = '0x...';
const balance = await getUserBalance(userAddress);
console.log(`Balance: ${balance} SEI`);
Complete Ethers.js Example
Copy
Ask AI
import { ethers } from 'ethers';
import { getBankPrecompileEthersContract } from '@sei-js/precompiles/ethers';
// Create provider
const provider = new ethers.JsonRpcProvider(
'https://evm-rpc-testnet.sei-apis.com'
);
// Get contract instance
const bankContract = getBankPrecompileEthersContract(provider);
// Get user's SEI balance
async function getUserBalance(userAddress: string) {
const balance = await bankContract.balance(userAddress, 'usei');
return ethers.formatEther(balance);
}
// Usage
const userAddress = '0x...';
const balance = await getUserBalance(userAddress);
console.log(`Balance: ${balance} SEI`);
1
Install Package
Copy
Ask AI
npm install @sei-js/precompiles
2
Import ABIs and Addresses
Copy
Ask AI
import {
BANK_PRECOMPILE_ABI,
BANK_PRECOMPILE_ADDRESS,
STAKING_PRECOMPILE_ABI,
STAKING_PRECOMPILE_ADDRESS,
ORACLE_PRECOMPILE_ABI,
ORACLE_PRECOMPILE_ADDRESS
} from '@sei-js/precompiles';
3
Use with Any Library
Copy
Ask AI
// Example with web3.js
import Web3 from 'web3';
const web3 = new Web3('https://evm-rpc-testnet.sei-apis.com');
const bankContract = new web3.eth.Contract(
BANK_PRECOMPILE_ABI,
BANK_PRECOMPILE_ADDRESS
);
// Get balance
const balance = await bankContract.methods
.balance('0x...', 'usei')
.call();
Was this page helpful?
On this page
Assistant
Responses are generated using AI and may contain mistakes.