Release Notes

v2.40.0

Release date: April 28, 2026

New features

Support for partial proofs in ledger-sdk

When signing a record mutation with ledger-sdk by calling .sign([{ keyPair, custom }]), the keyPair property is now optional. If not provided, it will generate a partial proof that will be sent to the ledger along with the JWT of the request and ledger will be able to impersonate that token and complete the cryptographic signature.

To read more about impersonation, refer to the About Authentication documentation

Bearer-only access rules for mutations

Access rules can now use bearer payload constraints — such as OAuth2 scopes — to gate write operations (create, update, drop) without requiring a signer constraint alongside them.

Previously, any access rule that used bearer on a mutating action also had to include a signer constraint. This made it impossible to authorize writes using only an external identity provider token. That restriction has been lifted.

A rule like the following is now valid on any resource:

{
  "action": "create",
  "record": "intent",
  "bearer": {
    "scopes": { "$in": ["payments.create"] }
  }
}

When a request arrives with an OAuth2 JWT that carries "scopes": ["payments.create"], the ledger grants the create action without requiring a key-pair signature. The external identity provider must be registered via an authentication policy with schema: oauth2.

Improvements

  • Bearer payload claims are now evaluated on access/!check endpoints for all resource types (ledger, bridge, intent, wallet, symbol, signer, policy, circle, domain, anchor). Clients using OAuth2 tokens can now call POST /:resource/:id/access/!check with their bearer token to discover which access rules apply to them.
  • Renamed the intents filter label from "Completion time" to "Created". Unlike mutable records where the moment field reflects the last update, on intents it signifies when the intent was created.

Studio table enhancements

  • More clarity in table header
  • More compact and presentable table content
  • Better presentation for filtering and column selection options
  • Improved pagination and allow selecting rows to display per page

Fixes

  • [studio] Improved performance for the homepage

On this page