July 21, 2026
JAAA USDT available in production
Production now returnsground-jaaa-usdt-vault from
GET /v2/wallets/yield-sources. Put this source under
strategy.allocations.usdt; continue using ground-jaaa-usdc-vault under
strategy.allocations.usdc for the USDC-funded lane.
This availability update does not change the response schema or introduce new
identifiers. The JAAA-USDT metadata now correctly describes its AAA-rated
collateralized loan obligation exposure.
July 20, 2026
Stablecoin-explicit JAAA yield source IDs
Breaking change The existing USDC-funded JAAA source moved fromground-jaaa-vault to
ground-jaaa-usdc-vault. Update stored strategy templates and API clients to
use the stablecoin-explicit USDC ID.
Sandbox also exposes ground-jaaa-usdt-vault for the USDT-funded JAAA lane.
Place it under strategy.allocations.usdt only when it is present in the live
environment-specific response from GET /v2/wallets/yield-sources. Production
clients must not assume the USDT row is available until the production catalog
returns it.
Historical completed JAAA-USDC transactions retain their economics and remain
readable after the identity migration.
July 17, 2026
Canonical list responses and webhook event casing
Breaking change We completed the response-pattern migration introduced on July 9. The following endpoints now return list items only underdata and pagination only through nextCursor:
GET /v2/wallets/yield-sourcesGET /v2/activityGET /v2/webhooksGET /v2/webhooks/eventsGET /v2/webhooks/{id}/events
List envelope migration
All affected list responses now use this shape:
nextCursor is non-null, pass it as the next request’s cursor query parameter. A null value means there are no more pages.
Webhook event field migration
Webhook event feed items and their nestedlatestEmission object now use camelCase exclusively. Update clients to read:
registrationId,eventType,attemptCount,deliveredAt,lastError,createdAt, andupdatedAton each event;eventId,attemptNumber,requestedAt,completedAt,responseStatus,responseMs, anderrorMessagefromlatestEmission.
Required client changes
- Read every affected list from
response.data. - Replace
response.hasMorechecks withresponse.nextCursor !== null. - Replace snake_case webhook event and delivery-attempt field access with the camelCase names above.