hackquest logo

striker

An autonomous agent that buys live World Cup data with x402 micropayments, thinks with Claude, sells its analysis through its own x402 storefront, and refills its treasury cross-chain with CCTP

Videos

Project image 1
Project image 2
Project image 3

Tech Stack

React
Solidity
Next
Python

Description

An autonomous agent that buys live World Cup data with x402 micropayments, thinks with Claude, sells its analysis through its own x402 storefront, and refills its treasury cross-chain with CCTP — a complete one-agent economy on Injective EVM, with every settlement on the ledger.

How each Injective technology is used

x402 — the core of the product, used on BOTH sides of the market

  • STRIKER as buyer: the decision loop watches the free scoreboard and pays the Data Forge via x402 — 0.02 USDC for per-match /api/deep on goals and endgame, and 0.01 USDC for the cross-match /api/signals sheet when 2+ games are live (publishes from the hottest match, no second deep buy) — apps/agent/src/loop.ts.

  • STRIKER as seller: its own storefront gates GET /api/insight at 0.05 USDC with the same protocol — apps/agent/src/storefront.ts.

  • The Data Forge gates /api/deep and /api/signals with injectivePaymentMiddleware (settlement policy after-success, so a failed response never charges the payer) — apps/data-forge/src/server.ts.

  • Shared engine: packages/x402kit flips between live (real on-chain settlement on chain 1439) and sim (identical HTTP flow, real EIP-712 signature recovery via @injectivelabs/x402/protocol's verifyPaymentRequest, settlement not broadcast — receipts are explicitly flagged simulated: true).

CCTP — the agent's autonomous treasury

When STRIKER's Injective USDC drops below a floor, the treasury policy fires a CCTP v2 depositForBurn from a reserve wallet on a source chain (default Ethereum Sepolia), minting native USDC to the agent's address on Injective — apps/agent/src/cctp.ts and treasury.ts. Fast-Transfer finality threshold, mint recipient encoding, and fee cap are implemented; contract addresses and the destination domain are env-configured against Circle's docs. Sim mode models the burn → attest → mint lifecycle with the same ledger events.

MCP Server — STRIKER is one, and pairs with Injective's

  • STRIKER ships its own MCP server (apps/mcp): any MCP client — Claude Code, Claude Desktop, Cursor — gets get_scoreboard, get_track_record, get_agent_state for free, and buy_insight / buy_deep_analytics that complete a real x402 payment cycle from inside a tool call and return the settlement receipt (tx hash + payer) with the data. Connect it with .mcp.json.example or run npm run mcp.

  • Wallet ops go through the official Injective MCP Server (balances, funding, moving earnings, bridging) — config in the same .mcp.json.example, workflow in the Agent Skill, which explicitly routes wallet operations to MCP tools rather than hand-rolled RPC.

Agent Skills — STRIKER as an ecosystem contribution

skills/worldcup-analyst is an installable Agent Skill: drop it into ~/.claude/skills/ and your Claude becomes a paying STRIKER customer — it checks the free teasers, completes the x402 payment cycle with the bundled payer script, and cites the settlement tx hash back to you. We don't just use Agent Skills; we ship one.

Quickstart — 30 seconds, zero configuration

npm install
npm run forge      # terminal 1 — the data API      (:4021)
npm run agent      # terminal 2 — STRIKER           (:4042)
npm run dashboard  # terminal 3 — the control room  (:5173)

Open http://localhost:5173. You'll see the replay slate kick off, STRIKER's first paid data buy land in the ledger, and its first insight publish within ~30 seconds. Buy an insight yourself:

node skills/worldcup-analyst/scripts/ask-striker.mjs

You'll get the 402 quote, the signed payment, the settlement receipt, and the full insight JSON.

Sim vs live, honestly: with an empty .env everything above runs in sim mode — the HTTP protocol, EIP-3009 signatures, and cryptographic verification are real (Injective's own protocol code verifies every payment); only the on-chain broadcast is skipped, and every receipt is labeled SIM in the UI and simulated: true in the data.

Going live (Injective EVM testnet, chain 1439)

Progress During Hackathon

Done ✅ — repo (public, tested 10/10, all 4 techs live), on-chain proof (CCTP transfer, 108+ live x402 settlements, staked + graded calls), public demo (Vercel + Render, keep-warm, mobile pass, Polymarket UI), README to rubric, launch-kit docs.

Fundraising Status

We aim to take this further but looking at what it does in the injective community

Team Leader
Sscouser ,
Project Link
Sector
AIDeFiInfraOther