Skip to content
🔑 DPX is in private beta. Settlement execution requires approval — request access. All other APIs are live and free to use in sandbox mode.

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.


The oracle pulls from 6 institutional data sources across the three ESG dimensions:

SourceAPIMetrics
World Bankapi.worldbank.orgCO2 emissions (metric tons per capita) — EN.ATM.CO2E.PC
Climate Monitorclimatemonitor.info/apiLive CO2 levels (ppm), CH4 levels (ppb)
SourceAPIMetrics
UN SDG APIunstats.un.org/SDGAPISDG 4.1.1 — minimum proficiency in reading (education), SDG 3 health indicators
SourceAPIMetrics
IMFdataservices.imf.orgConsumer Price Index (CPI) — economic stability proxy
OECDsdmx.oecd.orgGDP data — economic governance indicator
SEC EDGARdata.sec.govCorporate governance disclosures (XBRL company facts)

Each category uses a weighted average of its underlying metrics:

MetricWeightDirection
CO2 emissions50%Higher = worse score
CH4 (methane)20%Higher = worse score
Temperature anomaly30%Higher = worse score
MetricWeightDirection
Education (SDG 4.1.1)70%Higher = better score
Health indicators30%Higher = better score
MetricWeightDirection
GDP stability (OECD)40%Higher = better score
Corruption / CPI (IMF)60%Lower corruption = better score

Each raw metric is normalized to a 0–100 scale:

normalizedScore = ((value - min) / (max - min)) × 100

Metrics 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) / 3

esgFee = (100 - avgScore) / 200
ScoreFeeTier
1000.000%Excellent
900.050%Excellent
750.125%Good
500.250%Average
250.375%Below Average
00.500%Poor

This formula is identical in normalize.js, routes/agentEndpoints.js, and DPXSettlementRouter.sol. The three implementations are always consistent.


100% of ESG fee revenue is redistributed to verified on-chain impact programs. This is enforced by the DPXSettlementRouter contract — it is not discretionary.

ProgramShareRationale
Ocean Conservation30%Largest share — oceans absorb ~30% of CO2
Renewable Energy25%Direct emissions reduction
Forest Preservation20%Carbon sequestration and biodiversity
Climate Action15%Broad climate mitigation programs
Clean Water10%Social / SDG 6 alignment
  1. Counterparty’s E, S, G scores are fetched from the oracle at settlement time
  2. DPXSettlementRouter.settle() computes esgFee = (100 - avgScore) / 200
  3. The ESG fee amount is transferred to the redistribution contract
  4. The redistribution contract routes funds to five verified program addresses according to fixed percentage weights
  5. 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.

Annual VolumeESG 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.


Terminal window
GET localhost:3001/esg-score

Returns 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.


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