Signed, offline-verifiable settled outcomes

Verify a settled outcome in one crypto.verify() call — no node, no oracle, no scraper, no trust in us.

One ed25519 signing primitive, four verticals: resolved Polymarket markets, settled sports results, resolved Kalshi markets, and a wallet's signed win/loss track record. Each is a self-contained receipt, verifiable offline against Predge's published public key — drop it into an agent tool-call, a dispute, or a settlement.

01The problem

Agents and on-chain systems increasingly act on settled outcomes — to settle a bet or parlay, resolve a dispute, score a track record, feed a backtest, or keep an audit trail. The truth usually exists somewhere: Polymarket and Kalshi resolve their markets, a game finishes with a final score. But consuming that truth provably means running a node, trusting an oracle or an RPC/indexer, or scraping a scoreboard yourself — and an outcome passed around in a plain HTTP body or a tool-call is not portable proof: it can be edited, replayed, or misattributed.

There's no drop-in, offline-verifiable "this market resolved YES / this game ended 112–104, final — here's a signature anyone can check" record for the x402 / agent world. That portable record is what Predge Attest is — not a stronger truth anchor than the chain or an oracle, a far more portable one.

02What it is

Every attestation — across all four verticals — returns the same self-contained signed envelope:

{
  "payload":    { /* the settled facts for this outcome */ },
  "canonical":  "…",           // payload as JSON, keys sorted, no whitespace
  "signature":  "…",           // ed25519 over `canonical` (hex, 64 bytes)
  "public_key": "13fa3d18…52d9" // raw 32-byte ed25519 point
}

03The four attestations

One primitive, four settled-outcome sources. Each is $0.02 per call and returns the same signed envelope.

PREDICTION MARKETS GET /v1/attest/{conditionId}

A resolved Polymarket market's outcome — resolved, resolution (yes|no), resolved_at. Optional ?side=yes|no adds correct: was that specific call right. Winner by CLOB token index.

SPORTS · 10 LEAGUES GET /v1/sports/attest/{league}/{eventId}

A settled game result from ESPN — winner, final score, completed. Optional ?winner={ABBR} adds correct. Leagues: nba, wnba, nfl, college-football, mlb, nhl, mls, epl, champions-league, laliga.

KALSHI GET /v1/kalshi/attest/{ticker}

A settled Kalshi market resolution — resolved, resolution (yes|no) — from Kalshi's public market API. Optional ?side=yes|no adds correct. Attests the market's own result, not trader flow.

WALLET TRACK RECORD GET /v1/wallets/{address}/attest?window=30d

A wallet's signed win/loss record over resolved markets — turns a self-reported win rate into signed proof anyone can check. Window 7d or 30d.

04Why it's defensible

05Who it's for

Betting & trading agents

A provable, not self-reported, win record — stamp each resolved pick or market with a signed outcome.

Dispute & settlement tooling

A tamper-evident settled-outcome input for auto-settlement, parlays, and arbitration evidence.

PM & sports data platforms

A verifiable-outcome layer on top of raw Polymarket, Kalshi, and sports feeds.

Backtesting & research

Signed, resolved-outcome records that can't be quietly edited after the fact.

06How to consume it & pricing

Verify every claim (2 min, free) → Full docs