hackquest logo

IoMarkets.ai

Agent-native market data: pay per call in USDT0 on X Layer, verify every price against a published key.

Videos

Project image 1
Project image 2
Project image 3
Project image 4

Tech Stack

TypeScript
Node
Web3
x402
x Layer
USDT0
ed25519
MCP

Description

Agent-native market data with cryptographic receipts. Agents pay per call via x402

($0.002 for a VWAP signal, $0.01 for a signed price proof) in USDT0 on X Layer — no

API key, no account, no invoice, gasless for the payer. Every premium call returns an

ed25519-signed price attestation anchored to the on-chain settlement tx that paid for

it, independently verifiable against our published key. Forge one and the verifier

rejects it. Registered as ASP #5774 on OKX.AI; listing review pending.

Progress During Hackathon

Built end-to-end during the hackathon:

• Live ASP at https://okx.iomarkets.ai — Docker + Caddy, HTTPS, health green

• x402 v2 paid routes via the OKX SDK: get_vwap ($0.002), get_price_proof ($0.01),

settling USDT0 on X Layer (eip155:196) through the OKX facilitator

• Market data from QuestDB fed by a live OKX trade-feed ingester (auto-reconnecting)

• The differentiator: ed25519 price attestations anchored to the settlement txid,

plus a published trust anchor at /v1/proof/pubkey and an MCP manifest that

advertises it so agents can pin the key before paying

• A standalone verifier (pnpm verify) that pins the published key — it ACCEPTS a real

attestation and REJECTS a forgery signed with any other key

• Registered on-chain as ASP #5774 and submitted for listing (review pending)

• Real money, not a testnet: a buyer agent pays the seller ASP per call in USDT0,

settled on X Layer, verifiable on the explorer

Two things we found and fixed by testing rather than assuming:

• The verifier originally checked signatures against the pubkey embedded in the

payload — circular, and it accepted a forgery claiming BTC = $1. It now pins the

independently published key.

• The paid proof tier never actually emitted a proof: the settlement extension read an

AsyncLocalStorage context opened after the payment middleware, so it silently

returned nothing. Buyers paid and got a placeholder. Fixed and verified live.

Fundraising Status

Bootstrapped — no external funding.

Team Leader
SSergo Vashakmadze
Project Link
Deploy Ecosystem
X LayerX Layer
Sector
AIInfra