Skip to main content
You can call any core BOT Chain contract from viem by importing its address and ABI from @uzolabs/sdk/contracts, instead of copying them from an explorer.
Early release. This is published in @uzolabs/sdk 0.2.0 on npm and you can use it today. The API may change before 1.0, so pin the version.

What’s in the module

Why it helps

  • Typed per network. getAddresses(968) returns only the keys that exist on testnet, as literal address types. If you use a contract that doesn’t exist on that network, TypeScript catches it before you run anything.
  • ABIs that match the chain. Each ABI is fetched from BOTScan, and CI fails if it drifts. Because the ABIs are declared as const, viem can infer function names, arguments and return types.
  • One source of truth. The Contract addresses page and the SDK list the same addresses. When an address changes, updating the SDK version picks it up.

How it works

quote.ts
Output from a run on 2026-10-02:
Output
Testnet prices come from test liquidity and don’t reflect mainnet.

Next steps

Addresses

Every key on each network.

ABIs

What’s included and where it comes from.

Constants

Resource ID, decimals, bridge gateways.

Addresses

Look up BOT Chain contract addresses per network with the addresses export and getAddresses.

ABIs

Typed ABIs for BOT Chain contracts, generated from verified sources and regenerated when proxies change.

Constants

Shared constants such as USDT_RESOURCE_ID and TOKENS, plus experimental bridge values.
Last modified on October 2, 2026