curl --request POST \
--url https://harness.chance.cc/api/v1/intent \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"intent": "Only buy favorites priced at or above 95c. No longshots. Max $10 per market.",
"action": "Buy YES on the Will-X-win market at 21c for $10."
}
'{
"id": "<string>",
"requestHash": "<string>",
"status": "COMPLETED",
"verdict": "ALLOW",
"reasoning": "<string>",
"mode": "structured",
"venue": "<string>",
"actionFamily": "<string>",
"actionType": "<string>",
"proof": {
"transcriptRoot": "<string>",
"outputHash": "<string>",
"signature": "<string>",
"judge": "<string>",
"attested": true,
"anchorTx": "<string>",
"anchorVerified": true,
"transcriptUri": "<string>",
"explorerTx": "<string>"
},
"creditsRemaining": 123
}Verify an action
Checks action against intent and returns a verdict with its receipt. Runs synchronously. Costs one credit; a run that errors is refunded. Execute only on ALLOW.
curl --request POST \
--url https://harness.chance.cc/api/v1/intent \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"intent": "Only buy favorites priced at or above 95c. No longshots. Max $10 per market.",
"action": "Buy YES on the Will-X-win market at 21c for $10."
}
'{
"id": "<string>",
"requestHash": "<string>",
"status": "COMPLETED",
"verdict": "ALLOW",
"reasoning": "<string>",
"mode": "structured",
"venue": "<string>",
"actionFamily": "<string>",
"actionType": "<string>",
"proof": {
"transcriptRoot": "<string>",
"outputHash": "<string>",
"signature": "<string>",
"judge": "<string>",
"attested": true,
"anchorTx": "<string>",
"anchorVerified": true,
"transcriptUri": "<string>",
"explorerTx": "<string>"
},
"creditsRemaining": 123
}Authorizations
An API key (chance_sk_live_…) from https://harness.chance.cc/keys.
Body
The rules the action must satisfy: mandate, limits, thesis. Must be non-empty after trimming.
"Only buy favorites priced at or above 95c. No longshots. Max $10 per market."
The proposed action. A string is judged as written (mode: semantic). An object is classified by a venue adapter when one matches (mode: structured); an unmatched object is judged as JSON (mode: semantic).
"Buy YES on the Will-X-win market at 21c for $10."
Venue adapter to use. Ids: hyperliquid, limitless, polymarket, dimes, myriad, orderly, derive, lifi, meow, liquid, robinhood, x402, agentcards, uniswap, solana, starknet, alchemy. The value is lowercased, stripped of punctuation and matched against ids, aliases (hl, poly, evm, eth, base, sol, rh, lyra, ...) and id prefixes. An unknown value is ignored and object actions fall back to structural detection.
"hyperliquid"
Facts for the judge, shown as JSON under CONTEXT. context.reference is handled separately.
Show child attributes
Show child attributes
Judge prompt. Omit it; generic is the documented value and the fallback for any unknown value.
Response
Verdict produced.
Verification id (UUID).
Per-run identifier (0x, 32 bytes). Not a hash of the payload.
COMPLETED Execute only on ALLOW. BLOCK, ESCALATE and null mean do not execute.
ALLOW, BLOCK, ESCALATE, null The judge's decisive reason.
structured, semantic Adapter id used, or null.
order, margin, withdrawal, transfer, staking, vault, position, swap, payment, subaccount, permission or unknown. Null without a venue.
The venue's own action name as submitted, when the classifier found one.
Show child attributes
Show child attributes
