Documentation Index
Fetch the complete documentation index at: https://docs.story.foundation/llms.txt
Use this file to discover all available pages before exploring further.
This page covers the release-specific and operational details that sit beyond
basic setup. Start with Setup CDR Client first.
DKG State and the Story-API Endpoint
The SDK reads state from two backends:| Backend | Configured by | What it reads |
|---|---|---|
| EVM | publicClient | CDR contract state — vaults, fees, maxEncryptedDataSize, operational threshold |
| Story-API REST | apiUrl | DKG state — active round, global public key, threshold, validators, attestations |
apiUrl is a required CDRClient parameter. It is the base URL of a
Story-API REST endpoint, and the observer uses it for every DKG read.
apiUrl at your own Story node’s REST
gateway rather than the shared endpoint. See
Story-API REST Endpoint
for the per-network values.
The
observer caches round-keyed DKG snapshots for rounds in the stable
Active and Ended stages, with in-flight request deduplication. The active
round itself is always re-fetched, since it can transition at any time.Threshold Tuning
By default the SDK uses the network’s own DKG threshold when combining partial decryptions. You can raise the bar with the optionalminThresholdRatio
parameter, a value in [0, 1]:
max(network.threshold, ceil(participants * minThresholdRatio)).
Contract Addresses
The current Aeneid release uses the following core system addresses:| Contract | Address |
|---|---|
| DKG | 0xCcCcCC0000000000000000000000000000000004 |
| CDR | 0xCcCcCC0000000000000000000000000000000005 |
Release Posture and Availability
- Aeneid is the current public testnet release for the SDK.
- Confidentiality depends on the DKG threshold and validator / enclave trust assumptions described in the CDR overview.
- Availability depends on enough validators responding before timeout. If reads
fail to reach threshold, retry or increase
timeoutMs. - DKG reads depend on the
apiUrlStory-API endpoint being correct and reachable. Point it at a node you trust for production use.
Current Release Notes
- Story license-gated vaults still require manual condition encoding.
- The CDR SDK does not auto-wrap IP to WIP or auto-approve WIP for license minting.
accessCDR()can auto-generate the ephemeral keypair and querythresholdwhen those params are omitted.createVault/readVault/createFileVault/readFileVaultare available as high-level aliases.getRegisteredValidators()only includes validators whose registration is fully ratified (status = Finalized).timeoutMs: 120_000is a good starting point foraccessCDR()anddownloadFile().

