Price Oracle · Methodology · Audit Trail

The Duro Oracle

Commodity prices only matter if you trust where they come from. This page documents every source, every method, and every decision behind the Duro price feed — so you never have to take our word for it.

🔓
Open sources All price sources are public and independently verifiable
⏱️
Every 15 minutes Prices fetched and basket computed automatically on schedule
🗄️
Permanently archived Every snapshot stored in object storage — timestamped, immutable
🔗
IPFS pinning Each snapshot will be pinned to IPFS for decentralised verification

What we record

Every 15 minutes, the Duro cron worker fetches spot prices for all 20 basket commodities plus an extended set of reference commodities. It then computes the basket value — 1 Ð in SDR and in major currencies — and stores a complete snapshot.

Each snapshot contains the timestamp, the basket value, and a full breakdown showing every commodity's spot price, constitutional quantity, and contribution to the total. Nothing is rounded, adjusted, or touched by human hands between source and publication.

{
  "captured_at": "2026-04-22T00:00:00.000Z",
  "duro_usd": 0.9597,
  "basket": {
    "duro_usd": 0.9597,
    "breakdown": {
      "wheat":  { "price_raw": 5.94, "duro_qty": 0.00808, "contribution_usd": 0.048 },
      "rice":   { "price_raw": 11.34, "duro_qty": 0.00423, "contribution_usd": 0.048 },
      "copper": { "price_raw": 5.76,  "duro_qty": 0.00833, "contribution_usd": 0.048 }
    }
  }
}

The contribution_usd for each commodity is the spot price multiplied by the constitutional quantity. The sum of all 20 contributions equals duro_usd. The constitution sets both the quantities and the rules for changing them.


Price sources

The 20 basket commodities are priced from three tiers of sources, depending on what markets exist for each commodity.

📈 Real-time futures

Grains, metals, softs, and energy that trade on major exchanges. Fetched every 15 minutes from Yahoo Finance v8 (15-minute delayed). Exchange contracts include CBOT, CME, ICE, and COMEX.

Wheat ZW=F · Corn ZC=F · Rice ZR=F · Soybeans ZS=F · Oats ZO=F · Sugar SB=F · Coffee KC=F · Cocoa CC=F · Cotton CT=F · Lumber LBR=F · Copper HG=F · Aluminum ALI=F

🌿 4-Oil blend

Vegetable cooking oil is the equal-weight average of four oils: soybean oil (CBOT ZL=F, live), sunflower oil, palm oil, and olive oil (FAO monthly reference). This signals no single-crop dependence.

Soybean oil · Sunflower oil · Palm oil · Olive oil — each 25% weight

📋 Monthly indices

Six commodities lack liquid global futures. These are updated monthly from published international indices. Methodology changes require a public governance notice 90 days in advance.

Lentils: FAO · Potatoes: FAO/Euronext · Water: WHO pop-weighted · Electricity: IEA avg · Nickel: LME cash · Iron ore: SGX TIOc1


The basket constitution

The 20-item basket is a constitutional document. It does not change without a supermajority vote (more than 15 of 21 Oracle Council validators), and changes may only be initiated on Earth Day (22 April) of each year. The full text is public:

GET https://raw.githubusercontent.com/Duro-Stiftung/duro-ops/main/docs/BASKET_CONSTITUTION.md

At the first Earth Day calibration (22 April 2026), the constitutional quantity for each commodity was set so that at the 365-day rolling average price, each of the 20 components contributes exactly SDR 0.048 to the basket. Twenty components × SDR 0.048 = 1 Ð ≈ SDR 0.96 at launch.

Physical quantities in the basket are expressed in SI units: grams, litres, kilowatt-hours, square metres, kilograms, and so on. This is intentional — Duro measures a physical reality, not a financial convention.


Verify it yourself

Every data point the Duro Oracle uses is publicly accessible. You can reproduce the basket value from first principles without trusting us at all.

# Current prices (15-min delayed)
curl https://api.duromx.com/v1/snapshot

# Last 24 basket snapshots
curl https://api.duromx.com/v1/history?limit=24

# 1-year price history for a single commodity
curl https://api.duromx.com/v1/history/wheat?limit=365

# Verify the wheat price directly at the same source we use
curl "https://query2.finance.yahoo.com/v8/finance/chart/ZW=F?interval=1d&range=1d"

Cross-check any published basket value against the constitutional quantities. If the arithmetic does not add up, that is a bug we want to know about immediately at oracle@duromx.com.


The price archive

Every 15-minute snapshot is written to object storage at a timestamped path. This creates an append-only archive growing by approximately 96 records per day. Once written, objects are immutable.

# Archive path format:
prices/{YYYY}/{MM}/{DD}/{HH}-{MM}.json

# Earth Day first calibration snapshot:
prices/2026/04/22/00-00.json

IPFS content-addressing — launching this month

The next step is IPFS pinning. Each snapshot will generate a CID (content identifier) — a cryptographic hash of the exact JSON blob. CIDs are deterministic: the same data always produces the same hash. Any modification, however small, produces a different hash entirely.

Once live, the CID appears alongside every archive entry below. This means:

This requires no blockchain, no smart contracts, and no transaction fees. IPFS is a peer-to-peer content-addressed network. Cloudflare's IPFS gateway handles pinning.


Recent snapshots

The last 24 basket values — updated every 15 minutes automatically. Each row is a permanent record.

Live archive — last 24 snapshots Loading…
Timestamp (UTC) 1 Ð (USD) Archive path IPFS CID
Loading…

Oracle Council

The basket constitution calls for 21 identity-staked validators across at least 7 countries. Validators are not anonymous — their real-world identities and institutional affiliations are public record. This is the manipulation-resistance mechanism: collusion cannot be silent.

The Council is being assembled now. Validator responsibilities: independently verify published basket values, pin IPFS CIDs on independent infrastructure, and vote on circuit breaker activations and governance proposals. Validators are compensated in Ð.

If you are an agricultural economist, commodity market professional, or institutional investor interested in becoming a founding validator, contact oracle@duromx.com.