Updates

Changelog and release notes for the DUAL platform and API. Subscribe to the GitHub repository for real-time notifications.

v3.2.0March 10, 2026Latest

Batch actions, webhook testing, and template variations — this release focuses on developer productivity and throughput.

New
Batch action execution endpoint (POST /actions/batch) — submit up to 100 actions in a single request for 10x throughput.
New
Webhook test endpoint (POST /webhooks/{id}/test) — validate connectivity and inspect payload format without triggering real events.
New
Template variations — create derived templates that inherit base fields while overriding specific properties.
New
Public stats endpoint (GET /indexer/stats) — platform-wide metrics including total objects, active templates, and sequencer throughput.
Improved
Action queue throughput increased from 500 to 2,000 actions/second per organization.
Fixed
Fixed race condition in concurrent object state transitions that could cause stale reads for 200ms after a write.
v3.1.0February 15, 2026

SDK improvements, new indexer filters, and batch action enhancements.

New
TypeScript SDK v2.0 with full type coverage for all 102 endpoints.
New
Geo-radius search filter for objects with location properties.
Improved
Batch action endpoint now supports up to 500 actions per request (previously 100).
Improved
Webhook retry logic with exponential backoff — failed deliveries retry up to 5 times.
Fixed
Object transfer events now correctly fire webhooks for both sender and receiver orgs.
Deprecated
Legacy /v2/objects endpoint will be removed in v4.0. Use /objects with API version header instead.
v3.0.0January 8, 2026

Major release: new authentication model, template versioning, and Event Bus redesign.

New
EIP-712 typed data signatures for all mutation requests.
New
Template versioning — templates now support semver naming (e.g., my-org::asset::v2).
New
Sequencer checkpoints with on-chain anchoring every 15 minutes.
New
Role-based access control with custom permission sets per organization.
Breaking
Auth header changed from X-Api-Key to standard Authorization: Bearer format.

Migration Required:

Replace all X-Api-Key headers with Authorization: Bearer <token>. API keys are now passed as Bearer tokens.

Breaking
Template properties field renamed from 'attrs' to 'properties'.

Migration Required:

Update all template creation and update payloads. Existing templates are auto-migrated, but client code must use the new field name.

Breaking
Event Bus endpoint moved from /actions to /ebus/actions.

Migration Required:

Update all action execution calls. The old /actions endpoint returns 301 redirects for 90 days.

Breaking
Object response shape changed — 'vAtom' wrapper removed, properties now at top level.

Migration Required:

Remove .vAtom accessor from response parsing. SDK v2.0+ handles this automatically.

Fixed
Race condition in concurrent object transfers resolved with optimistic locking.
Improved
API response times reduced by 40% through query optimisation and connection pooling.
v2.4.1December 12, 2025

Security patch and minor improvements before the v3 migration.

Fixed
Patched JWT validation to reject tokens with algorithm: none — CVE-2025-DUAL-001.
Fixed
Storage upload endpoint now enforces Content-Length limits before buffering the full body.
Improved
Rate limiter now returns Retry-After header with the exact reset timestamp.
v2.4.0November 20, 2025

Webhooks v2, improved search, and notification channels.

New
Webhooks v2 with HMAC-SHA256 signature verification — every delivery includes an X-Dual-Signature header.
New
Notification channels — route alerts to email, webhook, or in-app based on event type and severity.
Improved
Object search now supports full-text queries across metadata fields with relevance scoring.
Improved
Dashboard API key management — rotate keys with zero-downtime grace period (old key valid for 5 minutes after rotation).