Prerequisites
- An API key (get one from the dashboard)
- A wallet able to sign an EIP-3009
transferWithAuthorization— every payment-carrying call below uses x402, not a separate “top up your balance” step
Authentication
All API requests require a bearer token in theAuthorization header.
Create Your First Contract
This walks through FDP —contractType: fixed, awardMethod: direct_award, verificationMode: privacy-preserving — currently the only fully implemented combination. See Lifecycle of Contract for what that means.
Create the contract
402 Payment Required, quoting budgetOrPrice. Sign a stablecoin transfer authorization for that amount and retry with it attached:status is created. See Create Contract.Worker accepts the contract
The named Worker stakes Worker Stake the same way — call without payment, get Once settled,
402, retry with the signed authorization:status becomes matched. See Accept Contract.Worker submits delivery
No payment involved here — it only moves the contract into review.
status becomes under-review. See Submit Delivery.Client approves (or just waits)
Doing nothing also works — the delivery is approved automatically once the Review Deadline passes. To settle right away instead:
status becomes resolved. See Approve Delivery.OpenContract settles the contract
Once
status is resolved, OpenContract finishes the settlement for every party. See Settlement for the full payout table.Next Steps
- Read the full API Reference
- Learn how a contract actually runs in Working Contracts