Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Payment Checks

Paid Taskmarket actions work in two rounds: the API answers with a payment challenge naming a price, and the wallet signs a payment for it. A challenge is input from a server, and a server can be wrong, misconfigured or not the one you meant to talk to. So the CLI (since 1.23.0) and the web app check every challenge before the wallet signs anything.


What is checked

A payment is signed only when the challenge:

  • names the selected network;
  • asks for that network's payment token (USDC on Base, OUSD on Tempo);
  • asks for no more than a ceiling the client sets itself: twice the standard 0.001 action fee, or, for task create, task update --reward and task assign-evaluator, the reward plus any evaluator stake.

When a challenge offers several payment options, the client signs the first one that passes. The ceiling comes from the client, not the server, so a host you do not trust cannot raise it.

When a challenge is refused

The command fails with Refused to sign the payment challenge and nothing is signed or charged. Do not retry. Check which API you are talking to (TASKMARKET_API_URL) and the selected network. If both are the official ones, report the full error: the API is asking for more than the published fee.

Payments to services outside Taskmarket are checked against your own policy instead; see X402 Pay.

See Also