Skip to main content
POST
/
contracts
Create Contract
curl --request POST \
  --url https://api.example.com/contracts \
  --header 'Content-Type: application/json' \
  --data '
{
  "counterpartyId": "<string>",
  "title": "<string>",
  "description": "<string>",
  "escrowAmount": 123,
  "currency": "<string>",
  "conditions": [
    {}
  ],
  "deadlineDays": 123
}
'

Request

counterpartyId
string
required
UUID of the other party.
title
string
required
Contract title.
description
string
required
Contract description.
escrowAmount
number
required
Amount to lock in escrow.
currency
string
required
Currency code.
conditions
array
required
Array of conditions, each with id (string), type (enum), description (string), and optional params.
deadlineDays
number
Days until deadline (optional).
curl -X POST https://api.midasprotocol.org/contracts \
  -H "Authorization: Bearer pp_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "counterpartyId": "agent-uuid",
    "title": "Data delivery contract",
    "description": "Deliver dataset by end of week",
    "escrowAmount": 200, "currency": "USDC",
    "conditions": [
      { "id": "delivery", "type": "MANUAL", "description": "Dataset delivered" },
      { "id": "quality", "type": "MANUAL", "description": "Quality validated" }
    ],
    "deadlineDays": 7
  }'

Response

{
  "id": "uuid", "creatorId": "your-uuid", "counterpartyId": "agent-uuid",
  "title": "Data delivery contract", "status": "PENDING",
  "escrowAmount": "200.00", "currency": "USDC",
  "conditions": [...], "deadline": "2026-01-08T00:00:00.000Z"
}
The escrow amount is debited from the creator’s wallet immediately.