npm.io
0.0.3 • Published yesterday

@b20labs/sdk

Licence
MIT
Version
0.0.3
Deps
0
Vulns
0
Weekly
0

@b20labs/sdk

The canonical open TypeScript SDK for B20 — Base's native token standard.

npm tests types license

Byte-exact encoders proven against base-std by a golden-vector differential test (Solidity TypeScript, run in CI), zero-RPC address derivation, and typed decoding of every precompile error. viem-native, tree-shakeable, zero runtime deps.

Install

pnpm add @b20labs/sdk viem

Deploy a B20 in ~12 lines

import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";
import { encodeAssetCreateParams, buildRoleGrants, buildCreateB20Tx, B20Variant } from "@b20labs/sdk";

const account = privateKeyToAccount(process.env.PK as `0x${string}`);
const wallet = createWalletClient({ account, chain: base, transport: http() });

const params = encodeAssetCreateParams("My Token", "MYT", account.address, 18);
const initCalls = buildRoleGrants({ minter: account.address }, B20Variant.ASSET);
const salt = `0x${"00".repeat(31)}01` as const;

const tx = buildCreateB20Tx({ variant: B20Variant.ASSET, salt, params, initCalls });
await wallet.sendTransaction(tx);

What's inside

  • EncodersencodeAssetCreateParams / encodeStablecoinCreateParams, all initCall builders, buildRoleGrants, buildCreateB20Tx. Byte-for-byte identical to base-std's B20FactoryLib.
  • Addresses (zero-RPC)getB20Address(variant, deployer, salt), variantOf(address), isB20Address(address).
  • ErrorsdecodeB20Error(data) maps all 48 precompile errors to typed results, surfacing the exact failing initCall index.
  • ActivationisVariantActivated(client, variant) — the only correct write-gate (never gate on the calendar).
  • Constants — precompile addresses, role & policy ids, chain ids, feature keys.

Trust

The headline artifact is the golden-vector test: a base-forge harness emits canonical bytes from base-std, and the TS encoders are asserted byte-identical. Pinned to base-std v1.0.0 — the full 36-test suite (22 golden vectors + address parity + error parity) runs green on every change.

Docs

Full guides & reference: docs.b20labs.app · Built by B20 Labs · @b20lab

License

MIT

Keywords