Exposure Map
A dependency graph grown live from mainnet with provenance on every edge, a look-through exposure API over it, and a cascade simulator that runs the breach forward.
The graph
Five node types and four edge types. Contagion flows along the direction of dependence: a failing asset hits the protocols it collateralises and the pools it couples with, and a broken backing flows to the wrapper that claims it.
- asset
- protocol
- bridge
- oracle
- issuer
- COLLATERAL_OF
- BACKED_BY
- PRICED_BY
- LIQUIDITY_COUPLED
Provenance on every edge
Every edge carries its source contract, block, extraction time, method, and the cadence past which its quantity is stale. An edge with no provenance is rejected at the boundary rather than stored with a shrug.
- onchain-extraction
- registry-read
- curated
- demo-seed
Quantities the edges carry
What is actually measured, per edge type. The exposure figure on any spoke of the contagion panel is one of these, never an estimate.
- suppliedUsd
- borrowedAgainstUsd
- ltv
- liqThreshold
- supplyCap
- mintedSupplyUsd
- verifiedBackingUsd
- backingRatio
- proofAgeSec
- feedAddr
- heartbeatSec
- deviationBps
- depthUsd
Native detectors
Four, each with published trigger maths rather than a threshold somebody tuned by feel.
- depeg
- mint-anomaly
- oracle-stale
- tvl-drain
Cascade simulator
Deterministic core with Monte Carlo bands. You shock an asset and it walks the graph: liquidation cascades, exit depth against real DEX liquidity, and a bad-debt band rather than a single flattering number.
- assetId
- shockPct
- lagMin
- depthM
- mcRuns
- seed
- badDebtUsd
- badDebtBandUsd
- cascadeDepth
- converged
Where the boundary sits.
In the same type as everything above it, and paired with the control that covers it. This is the part your auditor reads first.
Put Exposure Map on your perimeter.
Engine-level detail and the full catalogue are provisioned with your engagement, alongside the console your team works in.