Skip to main content
@uzolabs/sdk gives you typed chain objects, contract addresses, ABIs and a BOTScan client for BOT Chain, so you can build with viem without copying values by hand.
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 it does

The SDK is a small TypeScript library that works alongside viem. It doesn’t replace viem. It gives viem the BOT Chain values you would otherwise look up and paste in yourself:
  • Chain objects for mainnet (677) and testnet (968), with the RPC, explorer and Multicall3 already set.
  • Contract addresses for WBOT, USDT, BDEX, Permit2, the Universal Router and the bridge router, typed for each network.
  • ABIs fetched from verified contracts on BOTScan.
  • An explorer client that reads address and contract details from BOTScan’s API. It needs no API key.
  • Typed errors with stable codes you can check in your code.

Design principles

  • Built for viem. Every export works with viem’s own clients and actions. viem v2 is a peer dependency, so you choose its version.
  • No keys. The SDK never touches private keys and never signs. You sign with your own wallet client.
  • No guessing. When a value isn’t public, such as a Routing API URL, the SDK asks you for it. If you don’t pass it, the SDK throws MissingConfigError instead of falling back to a default.
  • Small imports. Each module has its own subpath. @uzolabs/sdk/chains is under 2 KB gzipped.
  • Checked against the chain. CI fails if a committed ABI no longer matches BOTScan. A nightly job checks that every address still has code.

Modules

The version numbers for the planned modules come from the SDK README. No release dates have been announced. Until those modules ship, each of their pages links to a guide that does the same job with viem today.

How it fits

Your app creates viem clients from the SDK’s chain objects and calls contracts using its addresses and ABIs. Your wallet does all the signing.

Before you start

Read Known limitations. Two of them affect how you use the SDK: the mainnet RPC doesn’t serve eth_getLogs, and there’s no public WebSocket endpoint.

Next steps

Install the SDK

Add it to your project.

SDK quickstart

Read a block in five lines.

Contracts

Addresses, ABIs and constants.

Source on GitHub

Code, issues and releases.
Last modified on October 3, 2026