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.Import
Import
Included ABIs
All ABIs except
universalRouterAbi were fetched from mainnet on 2026-09-30. universalRouterAbi was fetched from testnet, because that’s the only confirmed deployment. The BDEX contracts are verified under their Uniswap names, so their functions match the Uniswap V2 and V3 interfaces.
There’s no ABI for bdexV3PositionManager in 0.2.0.
Why they’re generated, not written by hand
A hand-copied ABI can be out of date without anything failing until a call reverts or decodes wrong. The SDK avoids that:- A script reads each contract from BOTScan’s
smart-contractsAPI and writes the ABI to a file marked “Do not edit by hand”, with the source address and fetch date. - CI runs the same script in check mode on every change and fails if any committed ABI differs from BOTScan.
- A nightly job checks that every address still has code and that known proxies still point at the expected implementation.
Proxies
The bridge router is an upgradeable proxy (EIP-1967). Its own ABI only covers proxy admin functions. The functions you call, such asdeposit, live in the implementation contract, which the operator can replace.
So for proxies, the script follows the proxy to its current implementation and takes that ABI. On mainnet, botBridgeAbi comes from the implementation at 0xD7F50Ee55787C8fFA82abD634801E56f0578a2B3. If the bridge is upgraded, the nightly check fails and the ABI is regenerated in a new SDK release.
You can see this yourself with the explorer client:
proxy-check.ts
Output
The testnet bridge router points at a different implementation,
0x10FeaF2bcdF840B408C281089F2cCe45C82895d4 on 2026-10-02. The SDK uses the mainnet ABI for both networks. The calls used in the bridge guides worked on testnet with it.Using an ABI
wrap-quote.ts
Output
symbol is a string and totalSupply is a bigint. A misspelled function name is a compile error.
Related
Addresses
The address for each ABI.
getContract
Fetch any verified ABI at runtime.