Quick Start Guide

Get up and running with @sei-js/precompiles in just a few minutes. Choose your preferred approach below.

1

Install Dependencies

npm install @sei-js/precompiles viem
2

Create a Client

import { createPublicClient, http } from 'viem';
import { seiTestnet } from '@sei-js/precompiles/viem';

const client = createPublicClient({
  chain: seiTestnet,
  transport: http()
});
3

Query a Precompile

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)

import { createWalletClient, custom } from 'viem';

const walletClient = createWalletClient({
  chain: seiTestnet,
  transport: custom(window.ethereum)
});

Complete Viem Example

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