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`);