EUR / GBP, ECB reference rate
by Lumoracle · 1 source · a report every 1 d
Signed by Lumoracle from the provider’s API
Per call
$0.01
sold in packs
Smallest payment
$0.20
what Lumoracle settles on chain
A report every
1 d
from 1 source
Uptime, 30 days
Measuring · 2 of 7 days
measured by Lumoracle
Calls, last 30 days
0
Endpoint
GET /v1/feeds/lumoracle/eur-gbp-ecb-reference/latest
Bought a pack on this feed? Your code spends it with one header. Make an API key, then use the first example below.
- One call
- $0.01, sold in packs only
- Pack of 20
- $0.20, valid 30 days
- Pack of 200
- $2.00, valid 30 days
- History page
- 5 calls
- Pays
- 0xe240cF24…EfDe4C92
API key
# For a pack you already bought. Make a key in the dashboard, under API keys. curl https://lumoracle.io/gw/v1/feeds/lumoracle/eur-gbp-ecb-reference/latest \ -H "Authorization: Bearer <your API key>" # The calls left in your packs. curl https://lumoracle.io/gw/v1/packs \ -H "Authorization: Bearer <your API key>"
HTTP
# 1. Ask. The answer is 402 with the price, in the PAYMENT-REQUIRED header. curl -i https://lumoracle.io/gw/v1/feeds/lumoracle/eur-gbp-ecb-reference/latest # 2. Sign the USDG authorization it describes, then ask again. curl https://lumoracle.io/gw/v1/feeds/lumoracle/eur-gbp-ecb-reference/latest \ -H "PAYMENT-SIGNATURE: <base64 payment payload>"
TypeScript
import {Lumoracle} from '@lumoracle/sdk'
const lumoracle = new Lumoracle({gatewayUrl: 'https://lumoracle.io/gw', account, maxSpendUsdg: 5_000_000n})
const report = await lumoracle.read('lumoracle/eur-gbp-ecb-reference') // pays, or spends a pack, by itself
report.value // 4 decimals, a bigint
report.checks // already verified: signer, kind, decimals, payload, ageTypeScript, with an API key
import {Lumoracle} from '@lumoracle/sdk'
// No wallet on the server: the key spends calls you bought ahead and cannot buy more.
const lumoracle = new Lumoracle({gatewayUrl: 'https://lumoracle.io/gw', apiKey: process.env.LUMORACLE_API_KEY})
const report = await lumoracle.read('lumoracle/eur-gbp-ecb-reference') // one call from your pack, nothing signed
report.value // 4 decimals, a bigint
report.callsLeft // what the pack still holdsSolidity
import {LumoracleConsumer} from "@lumoracle/contracts/src/LumoracleConsumer.sol";
contract Example is LumoracleConsumer {
bytes32 constant EUR_GBP_ECB_REFERENCE = 0x43b4c1254a4e55c1eea76fdd27d787333873d675aeed031681f8737680738c53;
function settle(bytes calldata report, bytes calldata sig) external {
int256 value = _readOnce(EUR_GBP_ECB_REFERENCE, report, sig, Policy({
maxAgeSec: 172800,
allowedKinds: KIND_MANAGED,
minValue: 0,
maxValue: type(int256).max
}));
// use value, scaled by 4 decimals
}
}Agents (MCP)
{
"mcpServers": {
"lumoracle": {
"command": "npx",
"args": ["-y", "@lumoracle/mcp"],
"env": {"LUMORACLE_GATEWAY_URL": "https://lumoracle.io/gw", "LUMORACLE_PRIVATE_KEY": "<a wallet made for this agent>", "LUMORACLE_MAX_SPEND_USDG": "1000000"}
}
}
}Agents (MCP), with an API key
{
"mcpServers": {
"lumoracle": {
"command": "npx",
"args": ["-y", "@lumoracle/mcp"],
"env": {"LUMORACLE_GATEWAY_URL": "https://lumoracle.io/gw", "LUMORACLE_API_KEY": "<your API key>"}
}
}
}Response schema
{
"type": "object",
"title": "EUR / GBP, ECB reference rate",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"value",
"observedAtMs"
],
"properties": {
"value": {
"type": "string"
},
"observedAtMs": {
"type": "string"
}
}
}