Skip to content
oraqle

EUR / AUD, ECB reference rate

by Fomo · 1 source · a report every 1 d

Signed by Oraqle from the provider’s APIQuantum-safeSLH-DSA + ed25519
Per call
$0.01
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
9m15tpKtzMHheWRNkZmJPzvpZfsZGFoDaUtcp3t3NeG9
Provider accountWhere x402 pays
95nLXCxiBoDVqE2xHDmrQcP712Se27yu8opVKFW97Amv
VaultIts USDC account
8Egyhy31QwKhS541tuV4A6KtKBotQRhgNj8hMfCB44PW
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.