Bonkerbonker

Reference

Documentation

Technical reference for the Bonker token factory.

SDK Integration

Integrate with Bonker using viem to deploy tokens and interact with the factory programmatically. Bonker runs on Base (chain 8453, the default), Robinhood Chain (chain 4663) and Arc (chain 5042) — each has its own factory, hooks, and locker deployed at different addresses, and a deployment is only ever valid on the chain it names via originatingChainId. Pick a chain below for its addresses and launch ticks.

Arc pairs against USDC, not WETH. Arc has no WETH: its paired token is USDC’s 6-decimal ERC-20 interface (0x3600000000000000000000000000000000000000), and launch ticks are a price in the paired token’s units, so an Arc launch needs different ticks for the same opening market cap. Reusing Base’s ticks on Arc opens the pool 1012× too expensive (about $100 per token). The example below already uses each chain’s own ticks.

Deploy a token

Robinhood Chain's and Arc's UniversalRouter are a fork with an extra field in their swap structs — only relevant if you're building swaps yourself rather than using the deployed pool's default routing. See Architecture and the Deployed Contracts page for the full address list on every chain.

Claiming fees

// Check available fees — FEE_LOCKER and WETH from whichever chain's constants you're
// using above (the same on every chain; on Arc, fees accrue in USDC).
const available = await publicClient.readContract({
  address: FEE_LOCKER,
  abi: feeLockerAbi,
  functionName: 'availableFees',
  args: [myAddress, WETH],
});

// Claim fees (called by the reward recipient)
await walletClient.writeContract({
  address: FEE_LOCKER,
  abi: feeLockerAbi,
  functionName: 'claim',
  args: [myAddress, WETH],
});