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/!checkendpoints for all resource types (ledger, bridge, intent, wallet, symbol, signer, policy, circle, domain, anchor). Clients using OAuth2 tokens can now callPOST /:resource/:id/access/!checkwith 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
momentfield 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