Skip to content

Tasra SDK

Build TypeScript apps that encrypt data and sign transactions through a distributed keeper network. Use verifiable credentials to control who can decrypt or sign.

Start here: learn TASRA step by step

Connect to a network, create your first slot, read and manage it, then add user access and sign a message. Continue to complete applications when those basics are familiar. Install the latest SDK from npm.

Install the latest SDK from npm:

Terminal window
npm install tasra-sdk@latest

Node.js 22.12+, ESM, and modern browsers with WebCrypto. Wallet and credential adapters are included; no separate application dependency is required. Installation and compatibility.

import {TasraClient} from 'tasra-sdk/app'
// Use the manifest URL and trusted checksum from the selected tasra-releases pointer.
const tasra = await TasraClient.fromManifest(manifestUrl, {
sha256, coordinator: 'lowest-operator-id',
})
console.log(await tasra.check())

The quickstart gives the complete folder, installation, configuration, typecheck and run commands. The application guide adds a creator wallet and durable store, then creates slots with tasra.slots.create(...). It also covers credentials, shared accounts, encryption and document signing.

Your goal Start here
Read the registry first (no writes) TypeScript quickstart
Encrypt data and let credential holders decrypt it Encrypted notes app
Create a slot for your app Create your first slot
Pay for slot usage Buy TASRA and fund your slot
Store encrypted notes for one authorized holder Encrypted notes app
Collect Alice’s and Bob’s document signatures Document-signing workflow
Require multiple approvers for one signature Native approval recipes
Get an Ethereum address and sign transactions Shared account app
Add a credential wallet or OAuth login Authentication APIs
Find an API or solve an error SDK reference · Errors

For client selection, see Choose a client.

A slot is a network-managed key with an access rule. Use BLS slots for encryption, FROST slots for FROST signatures, and tECDSA slots for Ethereum accounts. All capabilities · Documentation index.

Deployment addresses and service URLs come from tasra-releases. The Fuji configuration guide loads networks/testnet/current.json and its manifest from one pinned commit, then verifies the checksum. Confirm service support for the intended signing, authorization or decryption operation before executing it. A release record does not establish that support.

Optional: a complete offline TypeScript example

Install tasra-sdk and tsx, save this as demo.ts, and run npx tsx demo.ts. It prints Hello Tasra. These are public demo keys; never use them for real data. This checks local encryption only. For live authorization, use the encrypted notes app.

import {encryptEnvelope, decryptWithMasterKey, hexToBytes} from 'tasra-sdk'
/** Public, fixed DEMO keys. Never encrypt a real secret with these. */
function offlineRoundTrip(): string {
const msk = new Uint8Array(32)
msk[0] = 1
const mpk = hexToBytes('93e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8')
const identity = new TextEncoder().encode('demo')
try {
const envelope = encryptEnvelope(new Uint8Array(32), mpk, identity,
new TextEncoder().encode('Hello Tasra'), 0n)
return new TextDecoder().decode(decryptWithMasterKey(msk, envelope.ciphertext, identity))
} finally {
msk.fill(0)
}
}
console.log(offlineRoundTrip()) // Hello Tasra

The package includes task-based skills. Follow their installation instructions to register them with your agent, and refresh them after SDK upgrades. The same guides and examples are available to developers without an agent.

See migration guidance and deployment compatibility before upgrading. The package has not had an independent cryptographic audit.

Contributing · Changelog · Security · Apache-2.0 license