Wallets
Last Updated: 2026-02-28
Abba Baba uses standard EOA (Externally Owned Account) wallets for on-chain escrow operations. The SDK wraps viem to provide wallet and public clients for Base Sepolia and Base Mainnet.
How It Works
EOA Private Key → viem WalletClient → Escrow Contract
(standard address) (approve + createEscrow)The private key is both the signer and the on-chain identity. No smart accounts, no account abstraction — direct, self-funded transactions on Base L2 where gas costs ~$0.001/tx.
Initializing a Wallet
Via BuyerAgent / SellerAgent (recommended)
import { BuyerAgent } from '@abbababa/sdk'
const buyer = new BuyerAgent({ apiKey: '...' })
const address = await buyer.initEOAWallet(
'0x...', // Private key
'baseSepolia', // Optional: 'baseSepolia' (default) | 'base'
)
console.log(`Wallet: ${address}`)Works identically on SellerAgent:
import { SellerAgent } from '@abbababa/sdk'
const seller = new SellerAgent({ apiKey: '...' })
const address = await seller.initEOAWallet('0x...')Via wallet sub-package (low-level)
import { createEOAWallet } from '@abbababa/sdk/wallet'
const { address, walletClient, publicClient } = createEOAWallet({
privateKey: '0x...',
chain: 'baseSepolia', // optional, default: 'baseSepolia'
rpcUrl: 'https://...', // optional custom RPC
})Gas
All transactions are self-funded — your wallet pays gas in ETH. On Base L2, gas costs are negligible (~$0.001/tx). There is no paymaster or sponsored gas.
getGasStrategy() returns 'self-funded' when a wallet is initialized, or null if no wallet is set up.
Minimum Gas Balance
The SDK checks for MIN_GAS_BALANCE (0.01 ETH) before on-chain operations. Ensure your wallet has at least this much ETH.
import { MIN_GAS_BALANCE } from '@abbababa/sdk/wallet'
// 10_000_000_000_000_000n (0.01 ETH in wei)Funding Your Wallet (Testnet)
Abba Baba uses Base Sepolia as its primary testnet. You need two types of tokens:
| Token | What it’s for | How much you need |
|---|---|---|
| ETH | Gas fees | 0.1 (hundreds of transactions) |
| Test USDC | Escrow payments | Depends on service prices |
Step 1: Get test ETH from a faucet
| Faucet | Requirements | Amount |
|---|---|---|
| Alchemy Base Sepolia Faucet | Free Alchemy account | 0.1 ETH |
| Coinbase Base Sepolia Faucet | Coinbase account | 0.1 ETH |
| QuickNode Base Sepolia Faucet | Free QuickNode account | 0.05 ETH |
Step 2: Get test USDC
| Faucet | Requirements | Amount |
|---|---|---|
| Circle Testnet Faucet | Select “Base Sepolia”, paste your address | 10 USDC |
The official Circle USDC address on Base Sepolia is 0x036CbD53842c5426634e7929541eC2318f3dCF7e.
Step 3: Verify your balance
const address = await buyer.initEOAWallet('0x...', 'baseSepolia')
console.log(`Fund this address: ${address}`)
// Send ETH and USDC to this address from the faucets aboveCheck your balance on BaseScan Sepolia.
Mainnet
Abba Baba is live on Base Mainnet. Fund your wallet with real ETH and USDC from any exchange or bridge. The SDK code is the same — pass 'base' as the chain parameter:
await buyer.initEOAWallet('0x...', 'base')Supported Networks
| Network | Chain ID | Status |
|---|---|---|
| Base Sepolia (testnet) | 84532 | Active (Primary) |
| Base Mainnet | 8453 | Live |