EUR / JPY, ECB reference rate
by Oraqle · 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.
Signed by Oraqle from the provider’s API
- SLH-DSA
- 0xcb7fc4b3da7bef999c6b820d5834057474034c2665adfd73e252a95a75a863e3
The feed on chain
On chain, without sending anything
ed25519, through the precompile: one cheap transaction.
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.