Controlled pilot

Agent payments and accepted-action payouts: a controlled pilot

“Our agent needs to pay for services, and we want to pay contributors in USDC only after an accepted action — but we need spending controls, approvals, and books that reconcile.”

Cryptuon runs controlled pilots for agent spending and accepted-action USDC payouts: bounded budgets, named approvers, evidence, and reconciliation you can audit.

When teams bring us this

  • An agent you run needs to pay for APIs, data, or MCP tools, and nobody has written down what it may spend or with whom
  • You want to pay affiliates, contributors, or partners in USDC per accepted action instead of on a monthly or NET-60 cycle
  • Finance cannot reconcile on-chain commissions or agent spend against your own ledger
  • A pilot is approved, but payment authority, approvers, and the dispute process are still undefined
  • Legal has asked who holds the funds, who gets paid, and in which jurisdictions

Usually owned by

  • Head of product or growth
  • CTO or head of engineering
  • Finance or payments operations lead
Scope

What you receive, and how “done” is defined

Deliverables

  • Written payment policy: budgets, per-transaction caps, recipient allowlists, approval thresholds, and a kill switch
  • Accepted-action specification: what counts as done, the evidence recorded, who verifies it, and the dispute window
  • Pilot integration on a rail you can use today (x402, a regulated payout provider, or your partner platform), with idempotent settlement and an approval workflow
  • Daily reconciliation job and report tying every payment to an action, an approver, and a ledger entry
  • Test suite, runbooks, and a go/no-go pack for wider rollout, including the open questions for your legal review

Example acceptance criteria

  • Policy tests: every over-budget, non-allowlisted, or above-cap payment in the agreed test suite is denied, and every payment above the approval threshold waits for a named approver
  • Idempotency: replaying any action event any number of times produces exactly one settled payment
  • Daily reconciliation matches 100% of pilot payments to an action ID and a ledger entry, with any break reported within one business day
  • The kill switch stops new payments within the agreed time (for example 60 seconds) in a rehearsed drill

Not included unless scoped

  • Custody of your or your recipients’ funds, or acting as a payment or money-transmission provider
  • Legal, tax, or regulatory advice on payments, affiliate programmes, or payee onboarding (we flag questions for your counsel)
  • Using Njord or any other unaudited contract to hold customer funds on mainnet
  • Token issuance, token incentives, or token promotion
Engagement

How this is bought

Start with a fixed-fee assessment. Every later stage is optional and scoped in writing before it starts.

  1. Step 1 · Assess

    Feasibility or bottleneck assessment

    from $1,500 · 1–2 weeks

    • Current-state analysis against your real workload or codebase
    • Options compared, including ones that do not use Cryptuon technology
    • Risk register and costed, scoped recommendation
  2. Step 2 · Implement

    Implementation sprint

    from $12,000 · 3–8 weeks

    • The agreed migration or integration, delivered against written acceptance criteria
    • Tests, runbooks, and documentation
    • Handover, or transition into managed operations
  3. Step 3 · Operate

    Managed operations and maintenance

    from $1,500/month · Monthly, 3-month minimum

    • Defined monitoring, maintenance, and incident responsibilities
    • Supported changes within an agreed envelope
    • Provider management and monthly reporting

Prices exclude independent audits, substantial infrastructure consumption, and legal advice unless written into the scope. All engagement types →

The short answer

Agent spending and accepted-action payouts are a policy and evidence problem before they are a rail problem. Cryptuon runs a controlled pilot: we write down what an agent or programme may pay, to whom, for which accepted action, with which approver and dispute window, then connect it to a payment rail you can use today and prove that every payment reconciles. Payment authority stays bounded and explicit, and people approve anything outside the policy.

For customer funds, that rail is existing infrastructure: x402 tooling, a regulated stablecoin payout provider, or your current partner platform. Cryptuon’s own escrow protocol, Njord, is used only as a devnet reference while its mainnet deployment waits on an audit.

Decision criteria

The questions that decide cost and approach:

What exactly is an “accepted action”, and who verifies it?

“Pay per action” is only as good as the definition of the action. A conversion might mean a signup, a first paid invoice, or an invoice that survived the refund window. Each has a different fraud profile and verification cost. For agent spend, the action is usually a delivered response; for contributor payouts it is a merged change, a qualified lead, or a completed task. The pilot records the evidence for each action (invoice ID, attribution model, reviewer) so that finance can answer “why was this paid?” without a rebuild. If verifying the action costs more than the payment is worth, per-action payment is the wrong model, and the assessment says so.

How much authority does the agent or programme get?

Write it down as numbers: a per-transaction cap, daily and monthly budgets, a recipient allowlist, an auto-approval threshold, named human approvers above it, and a kill switch with an owner. Anything not explicitly allowed is denied. This is the part most teams skip, and it is the part auditors and finance ask about first.

Who carries disputes and reversals?

Card rails optimise for human dispute resolution after payment. Stablecoin transfers are final, so disputes must be handled before release, through a hold period, a challenge window, or both. Njord’s design shows one way to do this: holds that start at seven days for new affiliates and shorten with history, plus a challenge window for suspect conversions. Whatever rail you use, the pilot sets who can open a dispute, who decides it, and what happens to the held payment.

Which rail can you use today, legally and operationally?

  • Agent pays for a resource per request: x402. Cloudflare documents x402 support for paid HTTP resources, paid MCP tools, and agent-side payment clients. Its examples use the public facilitator operated by Coinbase, with an exact scheme on several networks and an upto scheme (a maximum authorisation, with the final charge set at settlement) on EVM.
  • You pay many people: a regulated payout provider usually handles payee onboarding and compliance checks better than anything you would build for a pilot.
  • Recipients want bank transfers and tax forms: your existing partner platform may be the right answer, with only the accepted-action logic changed.

Payments and money transmission, payee onboarding, and affiliate programmes can need legal review in each jurisdiction. We flag these questions; your counsel answers them.

Is per-action pricing ready?

Charging per action, whether by you to your customers or by us for operations, makes sense only once four things are written down: the action, the cost of verifying it, who is responsible for disputes, and the legal scope. Until then, pilots are fixed-fee.

Implementation options

ApproachHow it worksStrengthTradeoffMaturity
Controlled pilot (Cryptuon)Policy, approvals, accepted-action evidence, and reconciliation built around a rail you already can use; Njord as a devnet reference for escrow logicPayment authority, evidence, and reconciliation are explicit and tested before scaleAdds a policy layer you must own; Njord itself is not usable for customer funds yetDelivery service; Njord is a devnet program, mainnet pending audit
x402 (Coinbase protocol, Cloudflare Agents SDK support)Server answers 402 Payment Required with terms; the client signs a stablecoin payment and retries; a facilitator verifies and settlesInline, machine-readable, request-time payment; growing toolingTwo-party per request; conditional payouts, splits, and budgets sit in your codeEmerging; implementations still consolidating
Regulated stablecoin payout providerAPI call pays USDC to onboarded recipients from your accountProvider runs onboarding, compliance checks, and reportingProvider fees, supported countries, and onboarding friction; less programmable conditionalityEstablished
Affiliate or partner platformPlatform tracks conversions and pays out, typically in fiat on a cycleFamiliar to partners and finance; tax forms includedSlow payout cycles and platform fees; limited agent supportEstablished
Self-built escrow contractYour contract holds a funded budget and releases on a verified actionFull control of conditions and splitsYou own the audit, key management, upgrades, and on-callDepends entirely on your audit and operations

Most pilots end up mixed: x402 for the agent’s outbound spend, a payout provider or partner platform for people, and one policy and reconciliation layer over both.

The delivery sequence

  1. Map flows. List who pays whom, for what, how often, at what size, and on which rail today.
  2. Write the policy. Budgets, caps, allowlists, approvers, kill switch, and the default-deny rule.
  3. Define accepted actions. Evidence, verifier, hold period, dispute window, and recipient requirements.
  4. Choose the rail. Compare options against your flows and record the open legal questions.
  5. Build in a sandbox. Integrate on testnet or a provider sandbox, with idempotent settlement and an approval workflow.
  6. Prove it. Run policy tests, replay tests, a reconciliation run, and a kill-switch drill.
  7. Run a capped pilot. Limited recipients and budget, a weekly review, then a go/no-go decision.

The policy is a reviewed artefact, not a set of constants buried in agent code. An illustrative example:

# Illustrative pilot policy (format agreed with you). Default: deny.
policy: research-agent-and-contributor-pilot
version: 3
currency: USDC

agent_spend:
  rail: x402
  per_transaction_max: "2.00"
  per_day_max: "150.00"
  per_month_max: "2000.00"
  recipients:
    - id: data-vendor-a
      pay_to: "0x1111111111111111111111111111111111111111"
      per_day_max: "50.00"
    - id: search-api-b
      pay_to: "0x2222222222222222222222222222222222222222"
  auto_approve_below: "0.50"
  approvers: ["payments-ops", "eng-lead"]
  approval_timeout: 15m   # unapproved requests expire; they never auto-pay

contributor_payouts:
  rail: provider-payouts
  action: qualified_signup
  accepted_when:
    - event: invoice.first_paid
    - min_days_since_signup: 14
  evidence: [invoice_id, referral_code, attribution_model]
  dispute_window: 7d
  recipient_requirements: [identity_verified, sanctions_screened, wallet_verified]
  commission: { type: flat, amount: "25.00" }

kill_switch:
  owner: payments-ops
  max_halt_latency: 60s

The acceptance tests run against that policy before any payment leaves a sandbox:

// Acceptance tests for the pilot's policy engine and settlement path.
// `evaluate`, `settle`, and `paymentsFor` are the pilot's own modules
// (illustrative names); the rail is a sandbox or testnet.
import { describe, it, expect } from "vitest";
import { loadPolicy, evaluate } from "../src/policy";
import { settle, paymentsFor } from "../src/settlement";

const policy = loadPolicy("policies/pilot.yaml");

describe("agent spend policy", () => {
  it("denies recipients that are not allowlisted", () => {
    const d = evaluate(policy, { recipientId: "unknown-vendor", amount: "0.10" });
    expect(d.outcome).toBe("deny");
  });

  it("routes payments above the threshold to a named approver", () => {
    const d = evaluate(policy, { recipientId: "data-vendor-a", amount: "1.20" });
    expect(d.outcome).toBe("needs_approval");
  });

  it("denies anything above the per-transaction cap", () => {
    const d = evaluate(policy, { recipientId: "data-vendor-a", amount: "2.01" });
    expect(d.outcome).toBe("deny");
  });
});

describe("contributor payouts", () => {
  it("settles an accepted action exactly once, however often it is replayed", async () => {
    const event = { actionId: "act_7f3c", recipientId: "contrib-42", amount: "25.00" };
    await Promise.all([settle(event), settle(event), settle(event)]);
    expect(await paymentsFor("act_7f3c")).toHaveLength(1);
  });
});

And the daily reconciliation check, where any returned row is a break to investigate:

-- Every payment on the rail must map to one accepted action and one
-- ledger entry with the same amount. Rows returned are breaks.
SELECT p.tx_ref, p.amount, a.action_id, l.entry_id
FROM rail_payments p
LEFT JOIN accepted_actions a ON a.action_id = p.action_id
LEFT JOIN ledger_entries l ON l.payment_ref = p.tx_ref
WHERE p.settled_at >= CURRENT_DATE - INTERVAL '1 day'
  AND (a.action_id IS NULL OR l.entry_id IS NULL OR l.amount <> p.amount);

Evidence

  • Njord’s escrow lifecycle, fee split, and devnet program ID are documented in how it works and the Njord documentation. The Njord FAQ states plainly that it runs on Solana devnet, that mainnet is pending, and that the pay-per-action API and x402 adapter are on the roadmap, not shipped.
  • How Njord’s escrow model differs from request-time payments is set out in the Njord vs x402 comparison, which also notes that x402 tooling is available today while Njord’s mainnet is not.
  • The x402 pattern, stablecoin settlement, and escrow tradeoffs are explained in agentic payments, x402, and on-chain settlement, and in the context of the wider agent economy on /agents.
  • Switchboard (documentation) appears in the plan only if a pilot needs multi-chain state. Its latency figures are design targets, and chain coverage has to be verified for each chain pair.
  • The evidence level for each project is listed in the maturity register. Both Njord and Switchboard are at “declared”. No third-party audit has been published for either, and neither has been accepted in a paying delivery.

What drives the cost

  • Number of rails. x402, a payout provider, and a partner platform each need their own integration, test fixtures, and reconciliation feed.
  • Verifying the action. Reading a billing webhook is cheap. Human review, or verifying model output, is not.
  • Recipient onboarding. Identity checks, wallet verification, and sanctions screening, usually through a provider.
  • Ledger integration. Mapping payments into your accounting system and agreeing on how breaks are handled.
  • Dispute handling. Hold periods, challenge workflows, and who staffs them.
  • Operating period. Monitoring, daily reconciliation, and incident response once the pilot is live.

Limitations and what we won’t do

  • We do not take custody of funds, act as a payment provider, or move money on your behalf. Approvers are your staff.
  • We will not put customer funds into Njord, or into any contract without an independent audit, on mainnet.
  • We do not give legal, tax, or regulatory advice. Payments, stablecoin payouts, and affiliate programmes may need review in each jurisdiction before launch.
  • A pilot proves controls at a capped scale. It does not show that the economics hold at full volume, and the go/no-go pack says what remains unproven.
  • If per-action payment does not fit your flows because verification is too costly or disputes are too frequent, the assessment says so and recommends conventional payouts.

Next step

Send us the flows you want to pay for (agent spend, contributor or affiliate payouts, or both), rough volumes, your current payment providers, and your target jurisdictions. The assessment returns a written payment policy, an accepted-action specification, a rail recommendation with open legal questions, and a costed pilot plan.

Technology

Cryptuon technology we may use

Open-source components we can bring to this work. They are used only where testing on your workload supports them, and evidence levels come from the public maturity register.

Alternatives

Options we’d recommend when they fit better

The assessment compares these on your actual workload. If one of them wins, the recommendation says so.

x402 (Coinbase’s open protocol; supported in Cloudflare’s Agents SDK)

Your agent pays per request for HTTP resources or MCP tools, or you want to charge agents for yours

Regulated stablecoin payout providers (for example Circle, or Stripe and Bridge)

You need USDC payouts to many recipients now, with the provider running payee onboarding, compliance checks, and reporting

Affiliate and partner platforms (for example impact.com or PartnerStack)

Recipients expect bank payouts, tax forms, and a familiar partner portal more than they need fast settlement

Your own escrow contract, independently audited

Conditional payouts are core to your product and you will fund an audit and own on-call for the contract

FAQ

Questions buyers ask

How much does an agent payments or contributor payout pilot cost?

Most pilots start with a fixed-fee assessment (from $1,500) that maps your payment flows, writes the policy, and recommends a rail. Implementation sprints start from $12,000, and managed operations — monitoring, reconciliation, and incident response — from $1,500 per month. The main cost drivers are the number of rails and recipients, how hard the accepted action is to verify, and how much of your existing ledger must reconcile.

Do you only use Njord?

No. Njord is on Solana devnet; its mainnet deployment is pending an audit, and its pay-per-action API and x402 adapter are roadmap items. We use it only as a devnet reference for escrow-and-release logic. For customer funds today, the pilot runs on existing infrastructure: x402 tooling, a regulated stablecoin payout provider, or your current partner platform.

Can an AI agent pay for APIs without a human approving every transaction?

Yes, within a written policy. Small payments to allowlisted recipients under a per-transaction and daily cap can be approved automatically; anything above the threshold waits for a named human approver, and anything outside the policy is denied. The agent never holds open-ended payment authority, and a kill switch stops all spending.

How do we pay affiliates or contributors in USDC only after a conversion is accepted?

Define the accepted action and its evidence first — for example, a first invoice paid and the refund window passed — then hold the payout for an agreed dispute window before release. Stablecoin transfers cannot be charged back, so disputes have to be settled before money moves. The pilot builds that hold, the verification step, and the reconciliation, on a rail your finance team can operate.

Do we need legal review before paying people or agents in stablecoins?

Usually, yes. Depending on your jurisdictions and flows, money transmission, payee identity checks, sanctions screening, tax reporting, and affiliate-disclosure rules may apply. We identify the questions and design for your counsel’s answers, but we do not provide legal advice.

Will Cryptuon hold our funds or send payouts on our behalf?

No. Funds stay in your accounts, wallets, or with your payment provider, and payment authority stays with your approvers. Our operations service monitors, reconciles, and responds to incidents within an agreed envelope; it does not take custody.

Bring us the requirement

Describe the outcome, what is blocking it, and when it must work. We reply with what a scoped assessment would cover and cost.