ESG Oracle
The DPX ESG Oracle produces live E, S, G scores from 6 real-world institutional data sources. Those scores flow directly into settlement fees: a higher score means a lower fee. 100% of ESG fee revenue is redistributed to verified on-chain impact programs — making every DPX settlement a direct contributor to measurable environmental and social outcomes.
Data Sources
Section titled “Data Sources”The oracle pulls from 6 institutional data sources across the three ESG dimensions:
Environmental (E)
Section titled “Environmental (E)”| Source | API | Metrics |
|---|---|---|
| World Bank | api.worldbank.org | CO2 emissions (metric tons per capita) — EN.ATM.CO2E.PC |
| Climate Monitor | climatemonitor.info/api | Live CO2 levels (ppm), CH4 levels (ppb) |
Social (S)
Section titled “Social (S)”| Source | API | Metrics |
|---|---|---|
| UN SDG API | unstats.un.org/SDGAPI | SDG 4.1.1 — minimum proficiency in reading (education), SDG 3 health indicators |
Governance (G)
Section titled “Governance (G)”| Source | API | Metrics |
|---|---|---|
| IMF | dataservices.imf.org | Consumer Price Index (CPI) — economic stability proxy |
| OECD | sdmx.oecd.org | GDP data — economic governance indicator |
| SEC EDGAR | data.sec.gov | Corporate governance disclosures (XBRL company facts) |
Metric Weights
Section titled “Metric Weights”Each category uses a weighted average of its underlying metrics:
Environmental weights
Section titled “Environmental weights”| Metric | Weight | Direction |
|---|---|---|
| CO2 emissions | 50% | Higher = worse score |
| CH4 (methane) | 20% | Higher = worse score |
| Temperature anomaly | 30% | Higher = worse score |
Social weights
Section titled “Social weights”| Metric | Weight | Direction |
|---|---|---|
| Education (SDG 4.1.1) | 70% | Higher = better score |
| Health indicators | 30% | Higher = better score |
Governance weights
Section titled “Governance weights”| Metric | Weight | Direction |
|---|---|---|
| GDP stability (OECD) | 40% | Higher = better score |
| Corruption / CPI (IMF) | 60% | Lower corruption = better score |
Scoring & Normalization
Section titled “Scoring & Normalization”Each raw metric is normalized to a 0–100 scale:
normalizedScore = ((value - min) / (max - min)) × 100Metrics where higher = worse (CO2, CH4, temperature) are inverted: score = 100 - normalizedScore
The three category scores (E, S, G) are then averaged equally:
avgScore = (E + S + G) / 3Fee Formula
Section titled “Fee Formula”esgFee = (100 - avgScore) / 200| Score | Fee | Tier |
|---|---|---|
| 100 | 0.000% | Excellent |
| 90 | 0.050% | Excellent |
| 75 | 0.125% | Good |
| 50 | 0.250% | Average |
| 25 | 0.375% | Below Average |
| 0 | 0.500% | Poor |
This formula is identical in normalize.js, routes/agentEndpoints.js, and DPXSettlementRouter.sol. The three implementations are always consistent.
ESG Redistribution Mechanism
Section titled “ESG Redistribution Mechanism”100% of ESG fee revenue is redistributed to verified on-chain impact programs. This is enforced by the DPXSettlementRouter contract — it is not discretionary.
Distribution
Section titled “Distribution”| Program | Share | Rationale |
|---|---|---|
| Ocean Conservation | 30% | Largest share — oceans absorb ~30% of CO2 |
| Renewable Energy | 25% | Direct emissions reduction |
| Forest Preservation | 20% | Carbon sequestration and biodiversity |
| Climate Action | 15% | Broad climate mitigation programs |
| Clean Water | 10% | Social / SDG 6 alignment |
How it works on-chain
Section titled “How it works on-chain”- Counterparty’s E, S, G scores are fetched from the oracle at settlement time
DPXSettlementRouter.settle()computesesgFee = (100 - avgScore) / 200- The ESG fee amount is transferred to the redistribution contract
- The redistribution contract routes funds to five verified program addresses according to fixed percentage weights
- Each redistribution is recorded in a Storacha (IPFS) proof with: tx hash, per-program amounts, period dates, and total redistributed
The program addresses and percentage splits are set at contract deployment and can only be changed via on-chain governance — not by Untitled Financial unilaterally.
Impact at scale
Section titled “Impact at scale”| Annual Volume | ESG Fee Pool (score 75) | Per Program |
|---|---|---|
| $100M | $125K | $37.5K (Ocean) / $31.25K (Renewable) |
| $1B | $1.25M | $375K (Ocean) / $312.5K (Renewable) |
| $5B | $6.25M | $1.875M (Ocean) / $1.5625M (Renewable) |
| $12B (Year 10) | $15M+ | $4.5M+ (Ocean) / $3.75M+ (Renewable) |
Every redistribution is verifiable on-chain and on IPFS. Any agent, auditor, or regulator can independently confirm funds reached the programs.
Live Endpoint
Section titled “Live Endpoint”GET localhost:3001/esg-scoreReturns the current E, S, G scores, composite average, active fee rate, and tier label. Use scores.average as the esgScore parameter in settlement quotes on the Stability Oracle.
Replace localhost:3001 with your production URL. Hosted endpoint provided upon beta approval.
File Structure
Section titled “File Structure”esg-oracle/ oracle.js ← Orchestrates all 6 data sources, runs on interval normalize.js ← Normalization, weighted averages, fee formula weights.json ← E/S/G metric weights (co2: 0.5, ch4: 0.2, temp: 0.3, etc.) adapters/ worldBank.js ← World Bank CO2 data climateMonitor.js ← CO2 ppm + CH4 ppb live readings un.js ← UN SDG education and health indicators imf.js ← IMF CPI (governance proxy) oecd.js ← OECD GDP data sec.js ← SEC EDGAR corporate governance disclosures routes/ agentEndpoints.js ← /manifest /esg-score /quote /fee-schedule /reliability storachaClient.js ← IPFS audit trail for ESG results + redistribution proofs