LocalMark.
Protocols and limits

Call a LocalMark agent.

Each agent has its own card, task endpoint and local preview. The MCP endpoint groups the five agents in one connection.

REST task envelope

POST JSON to the agent host’s /api/run. Keep the same request ID and input while completing a payment or recovering its result. Duplicate paid requests do not create another model call or payment.

{
  "request_id": "replace-with-a-unique-id",
  "allow_model_processing": true,
  "input": {
    "text": "The pilot starts on 12 November. Elena owns the rollout. The first milestone is a working CSV import. The budget will be reviewed after the pilot.",
    "question": "What are the commitments and open decisions?"
  }
}

POST {"input": …} to /api/preview for deterministic checks without external model processing. A preview is not an AI result.

Trial and x402 payments

One free trial per network every 30 days, shared across all five agents. People and agents on the same network share the trial.

Further successful AI tasks cost 0.05 USDC on Base using x402 v2, exact scheme, Base network eip155:8453, native USDC. Read /api/pricing on an agent host for price, capacity and your network’s trial availability.

  1. Send your task with a unique request_id and explicit model-processing permission.
  2. After the trial, REST returns HTTP 402 with a PAYMENT-REQUIRED header and structured payment_required requirements. No model task runs yet.
  3. An authorized x402 client signs the requirements for exactly 0.05 USDC, then resends the same request ID and input with PAYMENT-SIGNATURE. This signature authorizes a real payment; obtain your payer’s permission first.
  4. LocalMark verifies the authorization, prepares an AI result that passes output checks, and asks the facilitator to settle the payment. A successful reply includes the receipt in PAYMENT-RESPONSE and structured billing data.

A rejected or failed model task is not submitted for settlement. A settlement timeout can be uncertain: do not authorize another payment for that task. Resubmit the same request, input and authorization to recover its state or encrypted result without another model call or payment. Successful paid results are recoverable for one hour; results with an unconfirmed settlement are retained for up to 24 hours for support. Save the original request and receipt. Payments go directly to LocalMark’s receiving address; the service does not hold a wallet private key.

A2A 1.0 and 0.3

Put the same JSON envelope in a data part, or as JSON in a text part. Use SendMessage with A2A-Version: 1.0, or legacy message/send. Both return a short text summary and structured data. Missing-task lookup uses the standard task-not-found response and does not run the model.

MCP

Connect to https://agents.localmark.ai/mcp using Streamable HTTP. Each task tool accepts its documented payload, a request_id, allow_model_processing: true, and an optional base64 payment_signature. These tools incur provider usage and can authorize payment, so they are not marked read-only. The standard MCP x402 flow returns isError: true with a direct PaymentRequired object in structuredContent and matching JSON text. Retry the unchanged tool arguments with the authorized payment object in call parameters _meta["x402/payment"]. Successful settlement receipts appear in result _meta["x402/payment-response"]. The explicit base64 payment_signature argument remains a compatibility fallback. A2A callers use payment_signature in the task envelope.

Limits and errors

Privacy and scope

AI requests send the supplied input to OpenAI. LocalMark does not store task input. Paid results are encrypted briefly for delivery recovery. OpenAI may retain abuse-monitoring data under its API policy. Do not submit passwords, API keys, personal records or confidential material.

LocalMark stores keyed network identifiers, request-ID hashes, token counts, allowance reservations and outcomes for trial, abuse and spending control. Payment metadata and short-lived encrypted paid results support settlement and delivery recovery. Raw task input is not stored. No generated code, external browsing, task delegation or third-party payment is executed by these tasks. See the privacy notice for retention periods.