Skip to main content

SDK Overview

Notareum ships three first-class SDKs that expose the same protocol surface: TypeScript, Python, and Rust. Each SDK wraps the same set of deployed smart contracts (NotaRegistry, VerificationEngine, ValidatorStaking, NOTAToken, veNOTA, FeeManager, SlashingManager, AccessManager) behind a unified Notareum factory that exposes six sub-clients.

At a glance

All three SDKs implement:
  • .nota file creation, signing, parsing, validation, and serialization (off-chain, no gas).
  • On-chain resource registration, alias resolution, and revocation via NotaRegistry.
  • Verification request and attestation flows via VerificationEngine.
  • Validator staking, unstaking, and tier queries via ValidatorStaking.
  • veNOTA governance locks and voting power queries via veNOTA.
  • Fee configuration reads and governance-only writes via FeeManager.

Feature matrix

Choosing an SDK

TypeScript (@notareum/sdk). The right choice for web dApps, wallets, browser extensions, and any Node.js backend. Integrates with ethers v6 providers and signers. Tree-shakeable ESM build, works in modern browsers, and ships with full .d.ts declarations. Python (notareum). The right choice for backend services, data pipelines, Jupyter notebooks, off-chain indexers, and institutional treasury tooling. Built on web3.py, integrates naturally with eth_account, pandas, and FastAPI/Django stacks. Rust (notareum). The right choice for high-throughput validator nodes, indexers, embedded agents, and any service where a native compiled binary is preferred. Built on ethers v2 and tokio, published as a single crate on crates.io. Suitable for WebAssembly targets with minor feature adjustments. All three SDKs produce byte-identical .nota signatures and byte-identical resource IDs for the same inputs. You can create a .nota in Python on a backend, ship it to a browser, and verify it in TypeScript without any conversion.

Entry points

Each sub-client is reachable as a public field: ntm.nota, ntm.registry, ntm.verification, ntm.staking, ntm.governance, and ntm.fee. See the language-specific Getting Started pages to install and make your first call: