A TypeScript SDK for interacting with Canton blockchain nodes.
For complete documentation, examples, and API references, visit: https://sdk.canton.fairmint.com/
- 🔐 External Signing Guide - Create and manage external parties with user-controlled private keys
npm install @fairmint/canton-node-sdkimport { LedgerJsonApiClient } from '@fairmint/canton-node-sdk';
const client = new LedgerJsonApiClient(config);
const version = await client.getVersion();See CONTRIBUTING.md for information about setting up the development environment.
The SDK includes comprehensive integration testing against a local Splice network (LocalNet). See the LocalNet Testing Guide for detailed instructions.
We also provide integration tests following the cn-quickstart approach. See test/integration/quickstart/README.md for details.
# Setup CN-Quickstart LocalNet (recommended)
npm run localnet:quickstart
# Environment variables are written to .env.localnet
cat .env.localnet
# Configure SDK environment
cp example.env.localnet .env
# Start LocalNet
npm run localnet:start
# Run regression tests
npm run test:regression
# Or run quickstart-style integration tests
npm run test:integration
# Stop LocalNet
npm run localnet:stopℹ️ If you run
npm run localnet:setupinstead of the quickstart, make sure you have aGITHUB_TOKEN(orSPLICE_GITHUB_TOKEN) with read access to the Splice releases exported so the bundle download can succeed.
npm run localnet:quickstart- Setup CN-Quickstart LocalNet (recommended)npm run localnet:setup- Download and setup Splice LocalNet (alternative)npm run localnet:start- Start LocalNet servicesnpm run localnet:stop- Stop LocalNet servicesnpm run localnet:status- Check LocalNet statusnpm run test:integration- Run quickstart-style integration testsnpm run test:localnet- Run tests against LocalNetnpm run test:regression- Alias for test:localnet
The project uses GitHub Actions for continuous integration:
- Unit Tests: Run on every commit
- Linting: Code quality checks on every commit
- Integration Tests: LocalNet regression tests (cn-quickstart)
- Publish: Automatic NPM publishing on merge to main
See .github/workflows/ for CI configurations.