This page covers the release-specific and operational details that sit beyond
basic setup. Start with Setup CDR Client first.
DKG Query Modes
The SDK supports two backends for reading DKG state:| Mode | What it does | When to use it |
|---|---|---|
evm-events | Scans DKG contract events via standard EVM RPC | Default, works anywhere |
cosmos-abci | Queries the x/dkg keeper via CometBFT abci_query | Faster when you have access to a Comet RPC |
In
cosmos-abci mode, the SDK does not re-verify partial decryption
signatures locally. The x/dkg keeper verifies them before storage, so the
trust model is equivalent to reading that state through RPC.Choosing cosmos-abci
- Use
cosmos-abciwhen you control or trust a Comet RPC and want faster DKG reads than EVM event scanning. - Configure both
dkgSource: "cosmos-abci"andcometRpcUrl. - When you call
collectPartials()directly in this mode, pass the samerequesterPubKeyyou used for the read request. - Signature validation happens before keeper storage rather than inside the SDK
client, so your trust anchor is the Comet RPC’s view of
x/dkgstate.
Validation RPCs
If you want to defend against a single compromised RPC returning an incorrect DKG public key, configure additional validation RPCs. When set,observer.getGlobalPubKey() cross-checks them and throws if the nodes disagree.
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. validationRpcUrlshardensgetGlobalPubKey()against a single bad EVM RPC.cosmos-abcisimilarly depends on your Comet RPC endpoint being correct.
Current Release Notes
- The SDK is installable from source, not npm.
- 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()can return an empty list incosmos-abcimode for finalized rounds on the current Aeneid deployment.timeoutMs: 120_000is a good starting point foraccessCDR()anddownloadFile().

