# TaskMint agent quickstart Free Dirty Data Challenge: https://taskmint-lab.danborn83.chatgpt.site/challenge (three synthetic fixtures, nine public assertions). Machine-readable challenge instructions: https://taskmint-sign-proof-node22-production.up.railway.app/challenge.md Ten bounded, deterministic data utilities. All hosted calls use POST JSON at https://taskmint-sign-proof-node22-production.up.railway.app/api/agent/SERVICE_ID. OpenAPI with every input schema and synthetic example: https://taskmint-sign-proof-node22-production.up.railway.app/openapi.json Scope, limits and billable definitions: https://taskmint-sign-proof-node22-production.up.railway.app/service-catalog.json Current payment availability: https://taskmint-sign-proof-node22-production.up.railway.app/api/checkout/status ## Buy directly Call TaskMint directly at the API origin above; no marketplace router is required. Agent402 lists these services for discovery, but its execution router currently requires additional settlement history. Its discovery health is not purchase eligibility. ## Run the hosted client Download and inspect https://taskmint-sign-proof-node22-production.up.railway.app/taskmint-hosted-client.mjs, then use Node 22+: node taskmint-hosted-client.mjs check node taskmint-hosted-client.mjs example catalog_audit > input.json node taskmint-hosted-client.mjs prepare catalog_audit input.json job.json node taskmint-hosted-client.mjs probe job.json These commands persist a private job and request its result or exact quote. They do not sign or pay. Keep job.json and its .payment-lock private and together; do not commit them to a repository. Each new job uses its own file. Do not replace a job or delete its lock to retry a payment. For an explicitly approved purchase, connect your EXISTING EOA signer. It must expose address and signTypedData (for example, an already configured viem account). No x402 SDK setup is required for this adapter; no key is read or stored by TaskMint: import {payWithSigner} from './taskmint-hosted-client.mjs'; const result = await payWithSigner('job.json', { signer: yourExistingApprovedSigner, maxMicrousd: 5000 }); The signer must already be authorized for this purchase and control sufficient native USDC on Base. Smart/contract wallets are not supported by this TaskMint release. The check command reads service availability/configuration only; it does not check your wallet balance, authorization, or perform a paid test. There is no CLI payment command. Existing x402 integrations can still use payOnce with their own authorize callback: import {payOnce} from './taskmint-hosted-client.mjs'; const result = await payOnce('job.json', { maxMicrousd: 5000, authorize: requirements => paymentClient.createPaymentPayload(requirements) }); The cap is 5000 native USDC units (0.005 USDC), not 5000 USDC. The helper also checks the exact service price, network, asset and recipient before calling your authorizer. It claims a durable local payment lock before signing and will not sign that job again. Use a filesystem supporting exclusive file creation and file/directory synchronization. After HTTP 202, timeout, interruption or an error, recover without a signer: node taskmint-hosted-client.mjs recover job.json No unattended purchasing is enabled by downloading or running the unsigned example. ## First request 1. Select a service and construct its payload using the OpenAPI schema. 2. Generate 32 cryptographically random bytes encoded as 64 lowercase hexadecimal characters. This request_token is a private result credential, not a wallet key. 3. Store the exact JSON body {"request_token":"YOUR_FRESH_64_HEX_TOKEN","payload":YOUR_PAYLOAD} privately before sending it. Never reuse the synthetic example token or log the real token. 4. POST that body with Content-Type: application/json, initially without PAYMENT-SIGNATURE. A free or unresolved result returns 200 with state free; no payment is needed. 5. A billable result returns 402 with an x402 v2 PAYMENT-REQUIRED header. Before a buyer authorizes payment, validate the exact service price, network eip155:8453, native USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, and recipient 0x3a8De0b03EdAF430338a9CC871F2634882B1b75A. Only exact EIP-3009 authorization from an externally owned wallet is supported. 6. The buyer's x402 v2 client retries the identical URL and body with PAYMENT-SIGNATURE. A confirmed paid result returns 200 with state paid and PAYMENT-RESPONSE. ## Recovery HTTP 202 or an uncertain connection failure: preserve the original token and body. Retry the identical URL and body WITHOUT a signature to recover the existing result. Never create another token, purchase or payment authorization to resolve uncertainty. Respect Retry-After. Results remain available for 24 hours. A 409 indicates conflicting input or a missing original quote; a 410 indicates an expired unpaid quote. GET, an empty POST, or POST {} is a price/discovery probe only. Do not pay that static probe; send a valid payload and private request_token first to obtain the real job challenge. ## Prices per completed job or batch - number_normalize: 0.001000 USDC — Turn explicitly localised number strings into exact decimal strings. Optional currency code; no exchange-rate conversion. - date_normalize: 0.000500 USDC — Validate numeric Gregorian calendar dates and return YYYY-MM-DD using your declared field order. - unit_convert: 0.000500 USDC — Convert measurements within the same dimension, including explicitly US or imperial gallons and temperatures. - record_duplicates: 0.001000 USDC — Group records by exact selected keys, with explicit trim/case options. Returns row references without deleting or merging. - data_check: 0.001000 USDC — Check required fields, scalar types, numeric limits and unexpected fields. Reports exact rows and issues; never coerces values. - catalog_audit: 0.005000 USDC — Check product identities, duplicate IDs and localised prices in one import-readiness report. Returns row-level fixes and exact normalised prices. - record_reconcile: 0.005000 USDC — Match two supplied datasets by a typed identity key and report added, removed and changed records. Ambiguous identities stop the comparison. - invoice_arithmetic: 0.005000 USDC — Verify line extensions, subtotal and final total using exact integer arithmetic. You supply currency, decimal scale, tax and discount amounts. - field_diff: 0.000500 USDC — Compare selected fields in supplied snapshots, preserving exact values and types. - listing_terms: 0.002000 USDC — Resolve explicit Thai/English rent, security deposit and advance rent with source evidence. THB only. Local execution is free: https://taskmint-lab.danborn83.chatgpt.site/taskmint-local.mjs Annual plan and its separate receipt flow: https://taskmint-lab.danborn83.chatgpt.site/pricing Customer checkout: https://taskmint-lab.danborn83.chatgpt.site/checkout Terms: https://taskmint-lab.danborn83.chatgpt.site/terms No hosted MCP server is offered. Directory inclusion does not prove customer demand or settlement.