Skip to main content
This reference tracks the Aeneid release of @piplabs/cdr-sdk (v0.2.1), available on npm.
The CDR SDK (@piplabs/cdr-sdk) provides a TypeScript client for interacting with the DATA Foundation’s Confidential Data Rails system. It handles threshold encryption, vault management, and on-chain access control.

Step-by-Step Guide

Learn CDR through a series of tutorials with the CDR SDK Integration Guide.

CDRClient

The main entry point. Provides access to three sub-clients:

Current Surface Area

  • observer: vaults, fees, DKG state, validator registrations, and validator attestations
  • uploader: uploadCDR, uploadFile, allocate, write, and encryptDataKey
  • consumer: accessCDR, downloadFile, read, collectPartials, and decryptDataKey
  • crypto: low-level TDH2, ECIES, and SGX attestation verification helpers
The client also exposes high-level aliases:
  • createVault as an alias for uploadCDR
  • readVault as an alias for accessCDR
  • createFileVault as an alias for uploadFile
  • readFileVault as an alias for downloadFile

State Backends

The client reads from two backends: The apiUrl is a required parameter. See Runtime Configuration for operational guidance and the optional minThresholdRatio override.

Attestation Utilities

The SDK also exposes SGX helper functions in the crypto module:
  • parseSgxQuote() to read MRENCLAVE, MRSIGNER, and securityVersion from a quote
  • verifyAttestation() to validate those fields against your expected values
Use them together with observer.getValidatorAttestations() when your application wants an explicit validator enclave allowlist check.

Sub-Clients

Observer

Read-only queries for vault data, fees, and DKG state.

Uploader

Encrypt data, upload encrypted files, and write to CDR vaults.

Consumer

Request decryption, download encrypted files, and recover plaintext.

Crypto Utilities

Crypto

Low-level TDH2 and ECIES cryptographic primitives.