ChaindocLabs

Last updated: April 28, 2026

Changelog

Release history for the Chaindoc Server SDK, Embed SDK, and the public REST API. Both SDKs follow semver. major versions signal breaking changes, minor versions add backwards-compatible capabilities, patches are bug fixes. Releases ship when features are ready; there's no fixed cadence.

v2.0.0-alpha. April 2026 (current alpha)

Published on the @alpha tag on npm while we stabilise the new modules. Adds contracts, invoices, transactions, templates, and webhook signature verification to the Server SDK. Install with npm install @chaindoc_io/server-sdk@alpha. Learn more in the Semantic Versioning 2.0.0.

Server SDK. new modules

  • chaindoc.contracts.*. full contract lifecycle: create, send, cancel, terminate, add payment setup, list, get status, get activities
  • chaindoc.invoices.*. create, list, get, send, charge, mark paid
  • chaindoc.transactions.*. list per contract, get by UUID
  • chaindoc.templates.*. render templates into documents, signature requests, or contracts
  • Chaindoc.webhooks.verify(rawBody, signature, timestamp, secret). static helper for webhook HMAC-SHA256 verification with a 5-minute replay window
  • chaindoc.getApiKeyInfo(). returns key metadata (keyId, keyName, accessLevel, etc.)

Server SDK. other additions

  • environment option on the constructor ('production' | 'staging' | 'development'). pick the target environment without manually constructing baseUrl
  • isRetryable flag on ChaindocError. lets callers decide whether to retry on top of the SDK's built-in retry budget
  • Retry config is now an object: { maxRetries, baseDelayMs, maxDelayMs }

Server SDK. breaking changes

  • Removed the KYC module. KYC now happens exclusively inside the Embed SDK flow; there is no dedicated server-side KYC method. Migration: drop any chaindoc.kyc.* calls from your code.
  • chaindoc.healthCheck() no longer returns userId. The response shape is now { status, timestamp, apiKeyValid }.

Embed SDK. v1.1.0-alpha

  • New callbacks: onClose (fires on any teardown, including after success) and onResendOtp (fires when signer requests a new OTP)
  • New instance methods: isReady() and getSessionId()
  • New openSignatureFlow options: modalWidth, modalHeight, zIndex, closeOnClickOutside, closeOnEscape, language (14 locales supported)
  • Breaking: theme is no longer a constructor option. pass it in openSignatureFlow({ theme: 'light' | 'dark' }) instead

Public API

  • New endpoints: /api/v1/contracts/*, /api/v1/contracts/:id/invoices/*, /api/v1/transactions/*, /api/v1/templates/:id/*
  • Webhook envelope shape stabilised at { id, type, createdAt, data }
  • 11 new webhook event types added: contract.created, contract.status_changed, contract.signed, contract.cancelled, contract.terminated, invoice.created, invoice.sent, invoice.paid, invoice.cancelled, transaction.created, transaction.updated

v1.0.0. December 10, 2025

First stable release. Server SDK and Embed SDK shipped alongside the public REST API.

Server SDK (`@chaindoc_io/server-sdk`)

  • Node.js 18+ support, zero runtime dependencies (native fetch, Blob, FormData)
  • Full TypeScript definitions
  • Automatic retries with exponential backoff + jitter on 5xx / 429 / network errors
  • Modules: media, documents, signatures, embedded, kyc (KYC was later dropped in v2.0.0-alpha)

Embed SDK (`@chaindoc_io/embed-sdk`)

  • Framework-agnostic browser SDK. works with React, Vue, Angular, Svelte, and plain JS
  • Modal and inline display modes
  • Light / dark theming
  • Available via npm and as a UMD bundle through unpkg/jsDelivr

Public API

  • REST API under /api/v1/* with sk_ / pk_ key-based authentication
  • Documents, Signatures, Media upload, Embedded session creation, General (/me, /health)
  • Rate limiting (10 requests / 60 seconds per key across public endpoints)
  • PAdES-BES signatures embedded in the signed PDF (EU DSS pipeline, per-user ECDSA certificates)
  • Blockchain anchoring of signed document hashes on SKALE Calypso
  • Webhooks with HMAC-SHA256 signatures for event delivery
  • Sumsub-powered KYC available through the embedded signing flow

What to do next