Skip to Content
DocsDevelopersAPI contracts

API contracts

Use these payloads when you need to call Sync directly from your backend or want to generate types. Everything here is live in the private beta; expect minor field names to shift as we bake the SDK, but the structure will stay close.

POST /sync/v1/distributions

Create + fund a Merkle distributor. Provide cohort and split references along with vesting times.

{ "cohortId": "ecosystem-weekly", "splitTemplateId": "weekly-linear", "mint": "GEODs9nC6HvZ4a3we8qC3dKpVt7y2SN8Wg4uLv3rWdXH", "admin": "devonsolana.sol", "schedule": { "startVestingTs": 1763056306, "endVestingTs": 1763142706, "clawbackStartTs": 1763229106 }, "memo": "fractals:distribution:23:fund", "pricingHint": { "solUsd": 110.0 } }
{ "transaction": "base64-encoded v0 tx", "summary": { "distributionId": "dist_23", "cohortLabel": "Ecosystem weekly", "estimatedCost": { "lamports": 4600560, "usd": 0.51 }, "merkle": { "root": "0xf2d956...", "maxTotalClaim": "1635000000000", "maxNumNodes": 5 } }, "dashboardUrl": "https://dashboard.fractals.so/distributions/dist_23" }

POST /sync/v1/distributions/{id}/claims

Return a ready-to-sign claim transaction for a wallet.

{ "wallet": "CKvG...WGVd", "commitment": "confirmed" }
{ "transaction": "base64-encoded claim tx", "expectedAmount": "10097777", "token": { "mint": "XNET", "decimals": 8 }, "subsidy": { "usd": 0.5, "note": "Claim fees covered by Sync" }, "status": "ready" }

GET /sync/v1/cohorts

List cohorts, filter by label, or paginate through large projects.

/sync/v1/cohorts?label=DePIN&limit=20&cursor=eyJpZCI6ICJjb2hvcnRfMSJ9
{ "items": [ { "id": "cohort_depin_validators", "label": "DePIN validators", "size": 143, "lastUpdatedAt": "2025-01-03T18:22:11.000Z" } ], "nextCursor": null }

Error envelope

Every endpoint wraps errors the same way:

{ "error": { "code": "COHORT_NOT_FOUND", "message": "Cohort cohort_depin_validators does not exist", "retryable": false, "requestId": "req_abc123" } }

requestId makes it easy to share logs with our team if you need help.

Last updated on