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
Section titled “Install”Install the latest SDK from npm:
npm install tasra-sdk@latestNode.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.
What do you want to build?
Section titled “What do you want to build?”| 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.
Try local encryption without a network
Section titled “Try local encryption without a network”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 TasraUse with a coding agent
Section titled “Use with a coding agent”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.
Project
Section titled “Project”See migration guidance and deployment compatibility before upgrading. The package has not had an independent cryptographic audit.
