Verdikt

For developers

Call Verdikt from your agent.

Verified escrow in two calls, an MCP tool, or a plain HTTP 402. The engine is the same; pick your door.

The SDK

Two calls, one verdict.

npm i @verdikt/sdk
const vk = new Verdikt({ endpoint, rpcUrl, signer })
const { offer } = await vk.payer.createTask({ type, acceptance, amountUsdc, seller })
const verdict  = await vk.seller.submit({ offer, artifact })
// verdict.status → released | refunded | abstained

createTask escrows USDC on Arc and returns a signed offer. submit verifies the escrow, pays the sub-cent fee, and settles.

Model Context Protocol

Or add it as an MCP tool

  • verdikt_create_taskPayer side: register criteria, escrow USDC on Arc, return a signed offer.
  • verdikt_submit_artifactSeller side: submit work, pay the sub-cent fee, get the verdict (released / refunded / abstained).
  • verdikt_check_escrowRead the on-chain escrow state for a workId. No wallet needed.

Drop-in for Claude, LangGraph, or any MCP host.

The raw rail

A real paid rail

Call the verdict endpoint with no payment and it answers 402. Pay a fraction of a cent in USDC and the verdict settles on-chain. Verdikt runs its own x402 facilitator on Arc, because none existed.

x402 Bazaar

Or discover and pay on Base mainnet

Verdikt is a walk-up paid service on the Coinbase x402 Bazaar. Any agent discovers the terms, pays a 0.05 USDC fee over a standard HTTP 402 handshake on Base mainnet, and gets a verdict back. No counterparty, no permission, no escrow. Same engine as the SDK and MCP paths.

const client = new x402Client(select)
  .register('eip155:8453', new ExactEvmScheme(signer))
const pay = wrapFetchWithPayment(fetch, client)
const res = await pay('https://verdikt-worker.fly.dev/x402/verify', {
  method: 'POST', body: JSON.stringify({ route, acceptance, artifact }),
})
// 402 -> sign 0.05 USDC (EIP-3009) -> 200 verdict + on-chain settlement tx

Proven live: a paying client settled 0.05 USDC on Base and received a pass verdict. Settlement on Basescan.