Monorepo for the Nado TS SDK. The Nado SDK is a collection of utilities for interacting with the Nado API and contracts.
@nadohq/clientExposes the top-level NadoClient, which composes subpackages for API & contract interaction.
@nadohq/engine-clientExports queries & executes that talk to the off-chain matching engine.
@nadohq/indexer-clientExports queries that talk to the indexer.
@nadohq/trigger-clientExports queries and executes that talk to the trigger service (used for stop & TP/SL orders).
@nadohq/sharedBase utilities, contract interfaces, and EIP712 signing logic. This also includes
bignumber.js, which is used for representing
large numbers.
This is a Lerna monorepo. See package.json for common tasks, some of which are:
clean/build/dev/lint/typecheck: Fairly common & self-explanatory tasks, operate on the entire repo
gen-typedoc: Generates documentation using TypeDoc
link/unlink-local: Used for local package development.
Uses bun link/unlink (docs)
to enable other local repos to consume Nado packages without having to publish a new version.
When making a change to the SDK, you will need to build the SDK, then run
bun installon the consuming repo for the changes to be picked up.
depcruise:all: Run dependency-cruiser on all packages to check for dependency issues (incl. circular dependencies).
We're using Tsup for building the packages in CJS and ESM formats.
Each package has its own tsup.config.ts file importing tsup.base.config.ts at the root of the monorepo.
apps/node-compat-test tests the compatibility of the SDK in a pure, bundler-less, Node.js environment.
Note our packages should have legacy 'main', 'module', and 'types', 'react-native' fields in their package.json to ensure support of older pre-exports environments.
This repository includes agent instruction files for LLM-based development tools:
AGENT.md - Master instructions fileCLAUDE.md - Automatically symlinked to AGENT.md (managed by the repository).github/copilot-instructions.md - Automatically symlinked to AGENT.md for GitHub CopilotFor other LLM agents (Qwen, Gemini, etc.), you can manually create symlinks:
# For Qwen
ln -sf AGENT.md QWEN.md
# For Gemini
ln -sf AGENT.md GEMINI.md