Skip to content
oraqle

World GDP

by Oraqle · 1 source · a report every 1 d

Signed by Oraqle from the provider’s APIQuantum-safeSLH-DSA + ed25519
Per call
$0.02
sold in packs
Smallest payment
$0.05
what Oraqle settles on chain
A report every
1 d
from 1 source
Recent reports
Measuring · 1 of 7 days
sent, measured by Oraqle
Calls, 30 d
0

A report is accepted when it carries two signatures over the same message, ed25519 and SLH-DSA, by the two keys of one of the signers below; the decimals match; and it is fresh enough for you. Anyone can check that, without asking Oraqle.

Authorized signers

Each entry in the feed's account holds both keys of one signer.

The feed on chain

Feed accountThe signer registry and the decimals
AAVNYL1RHGpdrgaEDTeY6wGWbCgT1VwE5v5krA9hePHc
Provider accountWhere x402 pays
2d9a32d4YYGxsNBW41GvTBvhNXApdNBA1Y6KgsnhfKsz
VaultIts USDC account
7btUBXjJdt1SJwD9i9mW14D2XtYHjsX3U9S1FEB8KAWV
Oraqle program
PQC4C9A9TXN8beQPKPBP3tyMhebymzR5pkyzQeKv9oy

On chain, without sending anything

ed25519, through the precompile: one cheap transaction.

check.ts
import {Connection, PublicKey, Transaction} from '@solana/web3.js'
import {oraqleProgram, verifyReportIxs} from '@oraqle/program'
import {reportFromJson} from '@oraqle/shared'

const envelope = JSON.parse(pasted) // what a paid call returned
const parsed = reportFromJson(envelope.report)
if (!parsed.ok) throw new Error(parsed.reason)

const connection = new Connection('https://api.mainnet-beta.solana.com')
const tx = new Transaction().add(...(await verifyReportIxs(oraqleProgram(connection), {
  report: parsed.report, signature: envelope.signature, signer: envelope.signer, maxAgeMs: 172800000,
})))
tx.feePayer = new PublicKey('<any address with a little SOL>') // a simulation spends nothing
tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash
const {value} = await connection.simulateTransaction(tx)
console.log(value.err ? 'refused' : 'accepted by the Oraqle program', value.logs)

Every paid response carries report, signature, signer and pq, and encoded: the report’s bytes in the form the program takes. To check the SLH-DSA signature on chain as well, write it into a buffer and call verify_report_pq; the docs show how.