@cdr-kit/core
v0.5.0
Published
Typed TS SDK for Story CDR: condition encoders, the CdrKitVault flow, and the 2-step pay->access helpers.
Readme
@cdr-kit/core
Typed TypeScript SDK for Story Protocol's Confidential Data Rails (CDR): condition encoders, the CdrKitVault flow, and the two-step pay → access helpers. Typed error taxonomy + a discriminated read status.
npm install @cdr-kit/coreMock mode (no wallet, no chain — tests & demos)
import { createMockCdrKit } from "@cdr-kit/core";
const kit = createMockCdrKit({ threshold: 4, readDelayMs: 800 });
const { uuid } = await kit.createVault({ data: new TextEncoder().encode("secret") });
const bytes = await kit.accessVault({ uuid, onProgress: (p) => console.log(p.collected, "/", p.threshold) });Live (Aeneid testnet)
import { createCdrKitClient, createVault, accessVault, encodeSubscriptionConfig } from "@cdr-kit/core";
const client = createCdrKitClient({ privateKey: process.env.PRIVATE_KEY, apiUrl: process.env.STORY_API_URL });
const readConfig = encodeSubscriptionConfig({ token, recipient, pricePerPeriod, periodLength });
const txHash = await createVault(client, { vault, readConditionAddr, readConfig });
const bytes = await accessVault(client, { uuid });- Encoders:
encodeSubscriptionConfig,encodeTierGateConfig/encodeTierGateAux,encodeComposableConfig/encodeComposableAux— all Zod-validated (reject bad period/price/address). - Flow:
createVault,writeVaultData,accessVault,subscribeAndAccess. - Errors / status:
CdrError+CdrErrorsfactory;matchCdrStatusover theidle | connecting | paying | collecting-partials | ready | error | emptyunion.
Testnet only. CDR reads have ~15s latency (worst case minutes) and an ~1KB inline cap — large payloads go through the file path.
