# KeeperHub Emporia CBRI Score - Stablecoin Depeg Risk Scorer

> KeeperHub Emporia CBRI Score - Stablecoin Depeg Risk Scorer is a paid API for AI agents from app.keeperhub.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-22).

Computes a composite blockchain risk index (CBRI) score for a Uniswap v3 pool using order-flow imbalance, depeg, and liquidity-drain signals to detect stablecoin depeg risk.

## Facts

- Endpoint: POST https://app.keeperhub.com/api/mcp/workflows/emporia-cbri-score/call?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/keeperhub-emporia-cbri-score-stablecoin-depeg-risk-scorer-24b879d6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__Ep3siDvibCl8iuZiNjpP

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability keeperhub-emporia-cbri-score-stablecoin-depeg-risk-scorer-24b879d6 -d '<json body>'
```

Example prompt: Score the depeg risk on the USDC/ETH Uniswap v3 pool at 0xabc...123 — token0 is USDC (6 decimals) at 0xA0b...eB48, token1 is WETH (18 decimals) at 0xC02...6Cc2, and use the USDC/USDT depeg reference pool at 0xdef...456, with 5-minute candles, a drain threshold of 0.05 and depeg threshold of 0.01.

## When to prefer this

Use this endpoint when you need a quantitative, multi-signal composite risk score for a specific Uniswap v3 stablecoin pool — particularly when you want early-warning drain detection combined with depeg confirmation in a single automated workflow. Prefer this over generic on-chain data queries when you want a pre-calibrated noisy-OR scoring model rather than raw price or liquidity feeds.

## Known failure modes

- Missing required addresses (poolAddress, token0Address, token1Address, depegPoolAddress) returns a validation error
- Partial drain window data causes an inflated/invented drain spike — ensure drainWindow candles are fully available
- Wrong token decimals silently rescale the drain signal, producing incorrect scores
- Misconfigured sigmoid parameters (steepness/threshold) can suppress or over-amplify signals
- Pool address not indexed on-chain returns a data-unavailable error
- Network congestion may delay execution result availability

## How this service works

Build powerful blockchain workflow automations with a visual, node-based editor. Built with Next.js and React Flow.

## Output

Returns a JSON object with a run status ('running') and an executionId that can be used to poll for the completed composite CBRI score, individual signal values (depeg, drain, OFI), and whether the firing threshold was exceeded.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "poolAddress",
  "token0Address",
  "token1Address",
  "depegPoolAddress"
 ],
 "properties": {
  "tau": {
   "type": "number",
   "description": "Reference firing threshold, returned for comparison. This workflow never acts on it. DERIVED from the March 2023 USDC depeg; calibrated on ONE event."
  },
  "ofiWeight": {
   "type": "number",
   "description": "Noisy-OR weight for OFI. Ships at 0: non-discriminant on the reference crash, diagnostic only."
  },
  "ofiWindow": {
   "type": "integer",
   "description": "Rolling window in candles for OFI."
  },
  "depegWeight": {
   "type": "number",
   "description": "Noisy-OR weight for depeg."
  },
  "drainWeight": {
   "type": "number",
   "description": "Noisy-OR weight for drain. 0 disables the signal."
  },
  "drainWindow": {
   "type": "integer",
   "description": "Rolling window in candles. A FULL window is required; a partial one invents a drain spike."
  },
  "poolAddress": {
   "type": "string",
   "description": "Uniswap v3 pool to score. Drain and order-flow signals are read from this pool."
  },
  "ofiSteepness": {
   "type": "number",
   "description": "Sigmoid steepness for OFI."
  },
  "ofiThreshold": {
   "type": "number",
   "description": "Order-flow imbalance knee."
  },
  "candleSeconds": {
   "type": "integer",
   "description": "Candle size in seconds. The calibration assumes 300."
  },
  "token0Address": {
   "type": "string",
   "description": "token0 of the scored pool."
  },
  "token1Address": {
   "type": "string",
   "description": "token1 of the scored pool."
  },
  "depegSteepness": {
   "type": "number",
   "description": "Sigmoid steepness for depeg."
  },
  "depegThreshold": {
   "type": "number",
   "description": "Depeg knee, |1 - price|. THE CONFIRMATION SIGNAL."
  },
  "drainSteepness": {
   "type": "number",
   "description": "Sigmoid steepness for drain."
  },
  "drainThreshold": {
   "type": "number",
   "description": "Liquidity-drain knee, fraction of TVL per hour. THE EARLY-WARNING SIGNAL."
  },
  "token0Decimals": {
   "type": "integer",
   "description": "Decimals of token0. Wrong values silently rescale the drain signal."
  },
  "token1Decimals": {
   "type": "integer",
   "description": "Decimals of token1."
  },
  "depegPoolAddress": {
   "type": "string",
   "description": "Stable/stable pool used to price the distressed asset DIRECTLY. The depeg signal is only meaningful if this is a genuine stable pair."
  },
  "depegToken0D
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "status": "running",
 "executionId": "exec_abc123"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/keeperhub-emporia-cbri-score-stablecoin-depeg-risk-scorer-24b879d6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from app.keeperhub.com](https://www.zero.xyz/host/app.keeperhub.com/llms.txt)
