addrbookFor publishers
← The evidence ledger

Evidence row 574324

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 995d2176-af00-46ce-97d1-7b2498ecf338
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
19546356b777cc22dcc3169293485098e0dd3c4ef62a43d49485d6998700ceb4
Leaf
0xc53e9182519089cde85528cfd8ad49a77b421e3ae1513dc20b77d120cc7c9964

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Exit capacity for a Base lending market: per-protocol utilization and withdrawable liquidity read from the protocol's own books (Aave, Compound), plus — if you pass amountUsd — whether that size can be withdrawn right now and what share of the market it would be. High APY at high utilization means the market pays well and will not let you out; this tool separates the two. Protocols that do not expose borrowed-vs-supplied are marked unmeasured and are never recommended as executable. USDC only for USD figures; WETH returns utilization without USD (no price oracle in the paid path).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amountUsd": {
            "description": "Position size in USD to test for exit. Omit to get utilization and free liquidity without an exit verdict.",
            "type": "number"
          },
          "asset": {
            "description": "Which Base lending market to measure: USDC (full USD figures) or WETH (utilization only). Defaults to USDC.",
            "enum": [
              "USDC",
              "WETH"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_exit_capacity"
    },
    {
      "description": "How long this service's own leadership calls actually hold, measured from its hourly on-chain attestations (EAS on Base). Returns the median duration a protocol stayed the best pick, survival rates at 6/24/72h, how much of the rotation is the same two protocols trading places, and what chasing the leader is worth per $10k before gas. Measured over 24 days: the WETH leader never changed once, the ETH staking leader changed every ~26h, the USDC leader every ~2h with half the switches being a round trip between the same pair — three assets sold at one price with wildly different reliability. Also answers, empirically, whether a wider lead lasts longer: it does not (Spearman -0.04 over 177 completed spells), so gap size is not a usable proxy for confidence. Every input is a public attestation UID: recompute it yourself from base.easscan.org and get the same number. Observed history with sample sizes attached, never a forecast — assets whose lead has not changed in the window are reported as a floor with a censoring flag, never as a median.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asset": {
            "description": "Which market's leadership durability to measure: USDC/WETH lending on Base, or ETH_STAKING liquid staking. Defaults to USDC.",
            "enum": [
              "ETH_STAKING",
              "USDC",
              "WETH"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_leadership_persistence"
    },
    {
      "description": "How close a Base lending market is to the kink where borrow rates explode. Returns, per protocol, the current utilization, the kink read from the protocol's own interest rate curve, the headroom in bps, and the borrow APY at points around the kink — plus how many times the borrow cost multiplies just past it. Measured on a live reading: Compound USDC sat 0.17 points below its kink, where borrow cost goes from ~4% to ~16%. Aave and Compound only: Morpho's adaptive IRM has no static curve to read and DefiLlama-sourced protocols expose none, so they are marked unmeasured and never assumed stable. Describes the current state of the curve, not a prediction that utilization will move.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asset": {
            "description": "Which Base lending market to stress-test: USDC or WETH. Defaults to USDC.",
            "enum": [
              "USDC",
              "WETH"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_rate_sensitivity"
    },
    {
      "description": "Shared risk exposure across a declared portfolio. Give it your positions (protocol:usd pairs) and it returns, per factor, how much of your capital sits behind the same collateral, price oracle or vault curator — and through which venues it gets there. This is the question the market does not answer: depeg and hack alerts tell you an event happened, not whether you are two hops from it. In the Stream Finance collapse only 1 of ~320 MetaMorpho vaults held the broken asset directly, yet $93M of loss became $285M of contagion. Measured live: a Morpho USDC vault sits 93.7% behind cbBTC while Compound's USDC market is 43.1% — holding both is one risk in two wrappers. Morpho is attributed per isolated market and Compound by its real posted-collateral basket; Aave is reported unattributed, because a v3 supplier is exposed to the entire pool and splitting that across assets would imply diversification that does not exist. Structural shared exposure, not a correlation estimate.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asset": {
            "description": "Which Base lending market the positions are in: USDC or WETH. Defaults to USDC.",
            "enum": [
              "USDC",
              "WETH"
            ],
            "type": "string"
          },
          "positions": {
            "description": "Your positions as comma-separated protocol:usd pairs, e.g. \"aave:200000,morpho:150000\". Known protocols: aave, morpho, compound, moonwell, euler, fluid.",
            "type": "string"
          }
        },
        "required": [
          "positions"
        ],
        "type": "object"
      },
      "name": "get_shared_exposure"
    },
    {
      "description": "Buyer-side MOVE/HOLD decision (Layer 1 premium — sells the decision, not the raw datapoint). Given your current position, size, move cost and horizon, returns whether moving your capital to the best risk-adjusted protocol pays for itself now — with expected net gain, break-even days and a confidence tier. Deterministic from the underlying signal, which is EIP-712 signed and returned in a sibling content block (re-run the decision locally to reproduce it). Priced above the plain signal tool.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amountUsd": {
            "description": "Position size in USD. Scales the absolute gain and break-even. Defaults to 1000.",
            "type": "number"
          },
          "asset": {
            "description": "Which market the decision is for: USDC/WETH lending on Base, or ETH_STAKING liquid staking on Ethereum mainnet. Defaults to USDC.",
            "enum": [
              "ETH_STAKING",
              "USDC",
              "WETH"
            ],
            "type": "string"
          },
          "horizonDays": {
            "description": "How many days you expect to hold before re-evaluating. Gain only counts up to here. Defaults to 30.",
            "type": "number"
          },
          "moveCostUsd": {
            "description": "Your estimated cost to move (gas + slippage) in USD. Defaults to 0.5.",
            "type": "number"
          },
          "position": {
            "description": "Protocol where your capital sits now (aave/morpho/compound/moonwell/euler/fluid/lido/rocket-pool/coinbase-wrapped-staked-eth/frax-ether/binance-staked-eth). Omit or use 'idle' if uninvested.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_yield_decision"
    },
    {
      "description": "How much of the current APY survives if incentives stop. Splits each protocol's yield into base interest vs reward/incentive, reports the post-incentive floor, and says whether the leader changes without incentives. Only protocols whose source itemizes the reward component are decomposed — the rest are listed as undecomposable and NEVER assumed incentive-free, and no ranking claim is made when the current leader is one of them. Also returns bestVerifiableFloor: the highest yield provably independent of incentives. A stress test of readings taken now, not a forecast of when a campaign ends.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asset": {
            "description": "Which Base lending market to stress-test: USDC or WETH. Defaults to USDC.",
            "enum": [
              "USDC",
              "WETH"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_yield_durability"
    },
    {
      "description": "Real-time risk-weighted yield signal. USDC/WETH: lending APY on Base (Aave/Compound/Morpho read onchain, Moonwell/Euler/Fluid via DefiLlama). ETH_STAKING: liquid staking APY on Ethereum mainnet (Lido/Rocket Pool/Coinbase Wrapped Staked ETH/Frax Ether/Binance Staked ETH, all via DefiLlama) — a different chain and category from the lending signals, not a Base lending market. Source tagged per reading (never estimated). Result is signed (EIP-712 typed data) by the payment-receiving address, returned as a sibling content block for offline verification. That same address is registered on-chain as an ERC-8004 agent identity (agent-card.json) and periodically publishes EAS attestations of past readings (Base mainnet) — a public track record independent of this server's uptime.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asset": {
            "description": "Which yield signal to fetch: USDC/WETH lending APY on Base, or ETH_STAKING liquid staking APY on Ethereum mainnet. Defaults to USDC.",
            "enum": [
              "ETH_STAKING",
              "USDC",
              "WETH"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_yield_signal"
    }
  ]
}

What the leaf hashes

{"body":"19546356b777cc22dcc3169293485098e0dd3c4ef62a43d49485d6998700ceb4","id":574324,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793141491703094,"prev":null,"subject":"995d2176-af00-46ce-97d1-7b2498ecf338","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0xc53d822d9680e7038e2a44b3872d0456a7417315f21d919f30225635505dfae1
  2. 0x415375fe71e5150b6c30934beee1956775a4fcb6cadf5b9ebac3ba4ba320535d
  3. 0xfe567baf115d527c6f062983e293c03b788e5f636fe431c711f88275ef4a8bad
  4. 0xfbc1a034ba67b595bfeac93df68d69c8c006fcd7509707830213482c2b39fcf0
  5. 0xbcf09230553031f93d745f00bb748e0e317988e58910a08d1b1e4acc38937c26
  6. 0x9763f90da7ad265aea70129a9a61290fa64212f544cb344066e99a65b205876f
  7. 0x6722845009c6030b0577665da97fceefc4cee059598eafe2efc0908b7d5eaad9
  8. 0x426b2bb94b0e521c7e407f2c02b585c34a63aac13a61c94867befb2b3717da31
  9. 0x3d6937c9ff2b4c456be361f6c07dbd531b3f63812b8c35bf990dd828f19e8b53
  10. 0xa86a044552bf4b7203194e42b15773bbe1e42e6ac0ee79aa572564bcb910c6cb
  11. 0xaee0b65107319ac7d478b02b678408530570d0ec7f9fc1210cadd287c876dc5a
  12. 0xee8734682e9314905d7abd2575a48cec1c4d752265d2b88ce346211a72684543
  13. 0x72d49c3472216d5e76117068ea9a2a5f617bdb2ffda241f677ce8098a0219dfc
  14. 0x077edf0f29e2a3aa19c876439830696b88f0236fd0b2a3c43c76f38cdd29bb2b
  15. 0x73341bb09dd901ca47f26173883431496e3d98d6b0fb5b89f36218126d46c5d4
  16. 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON