DETERMINISTIC DATA UTILITIES

TaskMint for agents

Run supplied-data checks locally for free or use provider-processed USDC payments for hosted jobs. Annual subscriptions include 3,000 completed jobs per subscription month. Local execution needs no account or network.

Try one hosted batch for 0.005 USDC.

Audit up to 50 supplier records, reconcile two snapshots, or check invoice arithmetic. Hosted execution gives your agent a result, payment receipt and 24-hour recovery without deploying the engine.

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

Buy directly from TaskMint using this client; no marketplace router is required. Agent402 currently lists TaskMint for discovery while its paid execution router requires additional settlement history.

These commands request a quote without signing or paying. For a purchase, the client requires your existing approved wallet authorizer and an explicit spending cap. It saves the original job and blocks a second signing attempt; recover an uncertain result with the same job file.

import {payWithSigner} from './taskmint-hosted-client.mjs';
const result = await payWithSigner('job.json', {
  signer: yourExistingApprovedSigner,
  maxMicrousd: 5000 // 0.005 USDC maximum
});

The optional adapter accepts an existing signer with an address and signTypedData method. It needs no x402 SDK setup and never loads wallet keys. This release supports externally owned wallets; smart wallets are not supported. The check command verifies service configuration, not wallet funds or payment authorization.

Inspect the same engine locally for free.

Start with a local call. An agent supplies structured input and reads a deterministic result; its developer or operator sets the permitted workflow and payment budget.

Save both files in one folder, inspect them, then run with Node 22+:

node taskmint-agent-demo.mjs catalog
node taskmint-agent-demo.mjs reconcile
node taskmint-agent-demo.mjs invoice

These examples use synthetic data, run locally and make no payment or network requests.

Test before the next write.

The open Dirty Data Challenge gives your agent three synthetic fixtures and nine inspectable assertions. Run the reference engine or compare your own implementation, then keep the regression pack.

Take the free challenge →

Choose a capability

number_normalize

International numbers

Turn explicitly localised number strings into exact decimal strings. Optional currency code; no exchange-rate conversion.

12 explicit locales · Arabic, Thai and Latin digits · up to 100 values

0.0010 USDC per completed hosted job

date_normalize

Unambiguous dates

Validate numeric Gregorian calendar dates and return YYYY-MM-DD using your declared field order.

YMD, DMY or MDY · up to 100 dates · no time-zone inference

0.0005 USDC per completed hosted job

unit_convert

Compatible unit conversion

Convert measurements within the same dimension, including explicitly US or imperial gallons and temperatures.

30 units · 6 dimensions · up to 100 conversions · numeric approximation

0.0005 USDC per completed hosted job

record_duplicates

Duplicate record finder

Group records by exact selected keys, with explicit trim/case options. Returns row references without deleting or merging.

Any language as data · up to 50 flat records · typed matching

0.0010 USDC per completed hosted job

data_check

Data contract check

Check required fields, scalar types, numeric limits and unexpected fields. Reports exact rows and issues; never coerces values.

Any language as data · up to 50 flat records · up to 20 rules

0.0010 USDC per completed hosted job

catalog_audit

Catalogue import audit

Check product identities, duplicate IDs and localised prices in one import-readiness report. Returns row-level fixes and exact normalised prices.

Up to 50 flat rows · 12 price locales · explicit currency · supplied data only

0.0050 USDC per completed hosted job

record_reconcile

Dataset reconciliation

Match two supplied datasets by a typed identity key and report added, removed and changed records. Ambiguous identities stop the comparison.

Up to 50 rows on each side · 10 selected fields · exact typed keys

0.0050 USDC per completed hosted job

invoice_arithmetic

Invoice arithmetic check

Verify line extensions, subtotal and final total using exact integer arithmetic. You supply currency, decimal scale, tax and discount amounts.

Up to 50 lines · integer quantities · amounts as signed minor-unit strings

0.0050 USDC per completed hosted job

field_diff

Field change receipt

Compare selected fields in supplied snapshots, preserving exact values and types.

Any language as data · up to 30 selected fields · no live fetching

0.0005 USDC per completed hosted job

listing_terms

Thai rental terms

Resolve explicit Thai/English rent, security deposit and advance rent with source evidence. THB only.

Thai/English · THB only · supplied text, up to 10,000 characters

0.0020 USDC per completed hosted job

Agent checkout: one URL per tool

API base URL: https://taskmint-sign-proof-node22-production.up.railway.app. Use this base for every API path below.

POST to /api/agent/SERVICE_ID using the service’s input schema and a new private request token. A compatible x402 v2 client can authorize the exact price and retry that same URL and body. Agent API contract.

POST /api/agent/field_diff
Content-Type: application/json

{
  "request_token": "GENERATE_32_RANDOM_BYTES_AS_64_LOWERCASE_HEX",
  "payload": {
    "before": {"stock": 12},
    "after": {"stock": 10},
    "fields": ["stock"]
  }
}

Generate the token with a cryptographically secure random generator, replace the placeholder, and keep it private: it is the credential for this result. Save the exact body before sending. HTTP 402 supplies PAYMENT-REQUIRED; retry with the customer’s PAYMENT-SIGNATURE. The server accepts exact EIP-3009 native USDC payments on Base from externally owned wallets. Set a maximum permitted price in your agent before enabling signing.

HTTP 200 returns a paid or free result. HTTP 202 means settlement is uncertain: retry the identical body without a signature to recover. Keep the same token through timeouts, errors and restarts; changing input with that token is rejected. Never buy again to resolve an uncertain payment. Results expire after 24 hours. GET provides a discovery challenge without creating an order or taking payment.

The official x402 fetch client is covered by local integration tests. Live unsigned API access was verified on 25 September 2026. TaskMint is listed on x402scan; a real customer purchase is not yet confirmed. Static discovery metadata uses synthetic examples and never includes your actual input or private token.

Find TaskMint on x402scan →

Receipt API and annual purchases

The existing quote–pay–recover API remains available, including annual subscriptions:

  1. POST your service and payload to /api/checkout/quote. For annual access, post {"plan":"builder_annual"} instead.
  2. Keep the returned order ID and private receipt token. Review the price, recipient, network and expiry. The initial response does not take payment.
  3. POST an empty JSON object to /api/checkout/pay?id=ORDER_ID, with Authorization: Bearer RECEIPT_TOKEN. HTTP 402 supplies x402 v2 requirements in PAYMENT-REQUIRED.
  4. Have the customer authorize the exact payment in their own compatible wallet. Retry that same POST with its base64 x402 v2 PAYMENT-SIGNATURE. The current release supports EIP-3009 signatures from externally owned wallets, native USDC on Base, and the exact scheme only.
  5. HTTP 202 means the payment outcome is still being checked. GET /api/checkout/order?id=ORDER_ID with the same receipt token. Recovery is read-only; never create another payment to fix an uncertain one.

HTTP 200 returns the result after matching a successful transfer and two block confirmations. The receipt token grants access to the order; it must be treated as a credential. It is not a wallet key. No sign-in or independent platform API key is required for public checkout.

Use an annual subscription

After the annual payment is confirmed, reuse its receipt ID and token for:

POST /api/checkout/run?id=ANNUAL_ORDER_ID
Authorization: Bearer RECEIPT_TOKEN
Content-Type: application/json

{
  "service": "field_diff",
  "payload": {"before":{"stock":12},"after":{"stock":10},"fields":["stock"]},
  "idempotency_key": "keep-this-job-key-001"
}

One completed operation uses one job, including a completed diagnostic that finds invalid data. Unresolved operations use none. Retry the exact input with the same request key to recover its result without using another job. The response includes your remaining allowance and reset date. Monthly jobs do not roll over. The plan has no automatic renewal or paid overage.

Result access expires after 24 hours. Request bodies are limited to 48 KB, with stricter service-specific limits. Included execution is limited to 60 requests per minute and 2,000 per day per subscription; monthly allowance is 3,000 completed jobs. Public purchase admission is bounded separately during launch. An HTTP 429 does not charge an overage.

Free local execution

import { runService } from './taskmint-local.mjs';
const result = runService('field_diff', {
  before: { stock: 12 }, after: { stock: 10 }, fields: ['stock']
});

Limits and evidence

TaskMint does not browse, infer missing facts, use a language model, schedule external workflows or change another system. There is no hosted MCP service, team workspace or custom connector in this release. The separate authenticated /api/v1 ledger uses test credits; its receipts are not sales.

Regression checks are developer-authored and do not establish market demand, independent accuracy or guaranteed uptime. See the release evidence for what was tested and which live payment steps remain unverified.