addrbookFor publishers
← The evidence ledger

Evidence row 778246

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 8e6287e0-ac72-42d4-bad4-076c61f5aa1b
Recorded
Previous row
#291900
Body SHA-256
4b73ee990c52e0eb00ccf005fbb3da65191c69ad039b495647135675852d4e90
Leaf
0x227c9d26a88c004b530786baf7f3d3c6f5d38843148b2e86fc2620ed94a0e692

What was observed

{
  "count": 16,
  "tools": [
    {
      "description": "Given the credit cards a user holds, rank this week's dollar-valued actions: which held card to use per spend category, welcome offers at a 12-month high on cards not held, active transfer bonuses, and (optionally) the savings-rate move beside the card move.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "categories": {
            "description": "Optional spend categories to rank held cards for; defaults to all nine.",
            "items": {
              "enum": [
                "dining",
                "rideshare",
                "travel",
                "lounge",
                "entertainment",
                "insurance",
                "groceries",
                "gas",
                "other"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "currentSavingsApy": {
            "description": "Optional current savings APY, used with savingsBalance.",
            "maximum": 25,
            "minimum": 0,
            "type": "number"
          },
          "savingsBalance": {
            "description": "Optional cash balance, to include the savings-rate move beside the card moves.",
            "maximum": 10000000,
            "minimum": 0,
            "type": "number"
          },
          "usedBenefits": {
            "description": "Optional log of period credits already used this month; excluded from picks and counted toward renewal value. Omit to treat every credit as unused.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "benefitKey": {
                  "type": "string"
                },
                "cardId": {
                  "type": "string"
                },
                "periodStart": {
                  "description": "ISO first-of-month key for the period the credit was used in, e.g. 2026-09-01T00:00:00.000Z.",
                  "type": "string"
                }
              },
              "required": [
                "cardId",
                "benefitKey",
                "periodStart"
              ],
              "type": "object"
            },
            "maxItems": 200,
            "type": "array"
          },
          "wallet": {
            "description": "Card ids the user holds, in the form issuer:slug, e.g. [\"chase:sapphire-preferred\", \"amex:gold-card\"].",
            "items": {
              "type": "string"
            },
            "maxItems": 25,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "wallet"
        ],
        "type": "object"
      },
      "name": "best_move_this_week"
    },
    {
      "description": "Compare a user's current APY with SwitchWize's current top savings APY for a balance.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "balance": {
            "maximum": 10000000,
            "minimum": 0,
            "type": "number"
          },
          "currentApy": {
            "maximum": 25,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "currentApy"
        ],
        "type": "object"
      },
      "name": "compare_switch_savings"
    },
    {
      "description": "Estimate annual savings interest forgone for a supplied balance and optional bank name. comparisonApy is the average of the top three tracked savings rates, not an average across all banks; bankCount is the size of the tracked set. baselineApy is the named bank's APY, or the national savings benchmark when no bank is supplied. Return annualGap, APYs, observation date, freshness and methodology. This is a hypothetical estimate, not guaranteed savings or an account recommendation; verify eligibility, fees and current provider terms.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "balance": {
            "maximum": 10000000,
            "minimum": 0,
            "type": "number"
          },
          "bank": {
            "description": "Optional bank name for user-facing context.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_bank_gap"
    },
    {
      "description": "Return the current SwitchWize Bank Gap Index headline value, latest release, and methodology URL.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_bank_gap_index"
    },
    {
      "description": "Return recent verified credit-card fee and APR changes, most recent first. Each event is a diff between two confirmed snapshots of the same card.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          },
          "sinceDays": {
            "description": "Only changes observed within this many days.",
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_card_changes"
    },
    {
      "description": "Return verified credit-card product-change (downgrade) paths and the issuer's fee-refund window: which no-fee or lower-fee card a given card can be product-changed to, and how long after the annual fee posts a refund is available on cancellation. Optionally filtered to one card id (issuer:slug); returns every verified path and window when omitted.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cardId": {
            "description": "Optional card id (issuer:slug), e.g. chase:sapphire-reserve or capital-one:venture-x-rewards. Omit to return every verified downgrade path and fee-refund window.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_card_downgrade_path"
    },
    {
      "description": "Return current credit-card welcome-bonus offers (non-targeted, confidence-gated), each with a verified timestamp, source URL, and the card's own 12-month best.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "card": {
            "description": "Optional card id (issuer:slug), slug, or name to filter to one card, e.g. chase:sapphire-preferred or Sapphire Preferred.",
            "type": "string"
          },
          "limit": {
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_card_offers"
    },
    {
      "description": "Return verified CD rollover rules for one bank, or every bank SwitchWize has verified: what happens automatically at maturity if the customer does nothing, the grace period, how to stop the rollover, and the early-withdrawal penalty. Each fact is sourced directly from the bank's own disclosure; an unverified field is omitted, never guessed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "institutionId": {
            "description": "Optional institution_registry id, e.g. chase, american-express, wells-fargo. Omit to return every bank SwitchWize has verified.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_cd_rollover_rules"
    },
    {
      "description": "Return how much of the latest Federal Reserve rate hike each tracked savings account has passed through to savers so far: rate before the hike, rate now, change in basis points, pass-through share, and days until the bank moved. One source per bank; each row carries its source type and observation dates. Optionally filtered to one institution id.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "institutionId": {
            "description": "Optional institution_registry id, e.g. tab, ally, marcus. Omit to return every savings account measured against the latest Fed hike.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_fed_hike_pass_through"
    },
    {
      "description": "Return a SwitchWize index dataset summary and recent series.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "indexId": {
            "description": "Index id, e.g. bank-gap-index, cd-spread, mma-spread, checking-gap.",
            "type": "string"
          },
          "limit": {
            "maximum": 60,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "indexId"
        ],
        "type": "object"
      },
      "name": "get_index_dataset"
    },
    {
      "description": "Return public data source freshness status and affected routes. savings is an alias for hysa; money-market is an alias for mma. Also supports cds, checking, macro, bank-gap-index, and indices. Omit category for all supported sources. Unknown categories return an error; a source with no observations is explicitly unavailable. Source collection freshness does not establish that a ranked deposit release is approved or current.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "Optional freshness category. savings maps to hysa; money-market maps to mma. Also supports cds, checking, macro, bank-gap-index, and indices. Omit for all supported sources. Unknown values return an error; a known source without observations is unavailable.",
            "enum": [
              "savings",
              "hysa",
              "cds",
              "money-market",
              "mma",
              "checking",
              "macro",
              "bank-gap-index",
              "indices"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_rate_freshness"
    },
    {
      "description": "Estimate the modeled annual value of a supported premium credit card for a consumer segment. Supply a card slug or name and optionally a segment ID; the default is occasional-traveler. Return segment assumptions, score, rewards, credits, perks, fee, interest, friction, net value, caveats, sources, verification date, freshness and methodology. Gross recovered value is rewards + credits + perks. breakageMultiplier is gross recovered value / advertised value, NOT divided by annual fee. feeRecoveryMultiplier is max(0, gross recovered value - interest drag - rewards friction discount) / annual fee, before subtracting the fee. Friction applies to raw rewards only. Reality Score is 100 * net realized value / advertised value. Ratios are rounded. These are scenario estimates, not personalized advice or guaranteed benefits. Preserve stale or unavailable labels; do not infer that all terms share the observation date. Unknown cards or segments return a structured error with suggestions.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "card": {
            "description": "Card slug or name, e.g. platinum-card or Chase Sapphire Reserve.",
            "type": "string"
          },
          "segment": {
            "description": "Optional segment id, e.g. occasional-traveler, small-business-owner, balance-carrier.",
            "type": "string"
          }
        },
        "required": [
          "card"
        ],
        "type": "object"
      },
      "name": "get_reality_score"
    },
    {
      "description": "Return SwitchWize points/miles valuations (cents per point) per reward currency, with sample size and provisional/published status.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "Optional reward currency id or name, e.g. chase-ultimate-rewards or Membership Rewards.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_reward_valuations"
    },
    {
      "description": "Return top high-yield savings rates with freshness and attribution. Answers only from the editor-approved snapshot; before its first release it returns no ranked rates and says so (approval_status: not_yet_approved). approvedOnly makes the requirement explicit. detail=full adds every listed account marked verified or tracked, best picks, movers, history and a headline summary.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "approvedOnly": {
            "description": "Require an editor-approved HYSA snapshot. The default tool already answers only from the approved release; before its first release it returns no ranked rates (approval_status: not_yet_approved).",
            "type": "boolean"
          },
          "detail": {
            "description": "summary (default) adds list_counts. full (savings) adds the complete shared build: accounts (verified and tracked, each marked), best_picks, movers, history and summary. rates stays verified-only either way.",
            "enum": [
              "summary",
              "full"
            ],
            "type": "string"
          },
          "limit": {
            "maximum": 25,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_top_hysa_rates"
    },
    {
      "description": "Return top SwitchWize rates with freshness and attribution. Savings, CDs, checking and money market answer only from their editor-approved snapshot. A category with no approved release yet returns no ranked rates and says so (approval_status: not_yet_approved) rather than serving unverified observations; approvedOnly makes that requirement explicit. Approved responses include product terms and field evidence; stale or unavailable releases return no ranked rates. detail=full (savings) adds the complete shared build: every listed account marked verified or tracked, best picks, movers, history and a headline summary.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "approvedOnly": {
            "description": "Require an editor-approved deposit snapshot. Savings, CDs, checking and money market always answer from their own approved release; a category with no release yet returns no ranked rates (approval_status: not_yet_approved), as do stale or unavailable releases.",
            "type": "boolean"
          },
          "category": {
            "description": "U.S. deposit category: savings (alias hysa), cds, money-market (alias mma), or checking.",
            "enum": [
              "savings",
              "hysa",
              "cds",
              "money-market",
              "mma",
              "checking"
            ],
            "type": "string"
          },
          "detail": {
            "description": "summary (default) adds list_counts. full (savings) adds the complete shared build: accounts (verified and tracked, each marked), best_picks, movers, history and summary. rates stays verified-only either way.",
            "enum": [
              "summary",
              "full"
            ],
            "type": "string"
          },
          "limit": {
            "maximum": 25,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "category"
        ],
        "type": "object"
      },
      "name": "get_top_rates"
    },
    {
      "description": "Return current point-transfer bonuses across tracked bank-to-partner routes, each with a verified timestamp, source URL, and best-ever-for-route when real history exists.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "program": {
            "description": "Optional program id or name to filter routes by source or destination, e.g. chase-ultimate-rewards or Flying Blue.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_transfer_bonuses"
    }
  ]
}

What the leaf hashes

{"body":"4b73ee990c52e0eb00ccf005fbb3da65191c69ad039b495647135675852d4e90","id":778246,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793198190511218,"prev":291900,"subject":"8e6287e0-ac72-42d4-bad4-076c61f5aa1b","subject_kind":"endpoint"}

Proof

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

  1. 0x227c82a3025159bee7a42d5caea9929352f50fa9ee2454004de2a6e72137e516
  2. 0x6872863d4e359047f95673d361f7876ea788b663afef4a38522b68171267b024
  3. 0x340191f6be07751665aa5ed0d4065a98c6214ed538d34f8de82864e1a014cc2b
  4. 0x5ee344cf763d47de4e261b33981a7719016c7abe0d9fac8985f36592ad49c390
  5. 0xe32cac25a40cf4dbf0e540ced07f1e201dd859850fc078bc4bd3d9cb7b81049d
  6. 0x37e9bcf623ee8822e19067c17b01ca9437940cee5752658d1d60aa97e1483905
  7. 0xf3c529829b4e26706d7fd089aa5ef9bf6e40d35d0e9c465ce5de32d4b4468ac4
  8. 0x9a70ba6c6f920a10fd941e6d4d422df7a75a18c6f3d4704e5aaf4ef35dfdb285
  9. 0xecee56a0bb8259c37e775f56103f433196c55803439d277559633715100c3507
  10. 0xc6818d38f35145699d5ea744e118e82817ae68766f069efc8b65c803d4f855e6
  11. 0xf66811b51cad5ddcf3ec211ff519a9e540ba3bd77ead1283f18695b95d7109ca
  12. 0x1afe025bf0d97efced13e77f68b5e16c7bfb56ea13cca50c8aed2d156e60d500
  13. 0x3ce83ad86ff4f1711072c47e954f682b6a67bc60b2342af27fa493f972b6b9c0
  14. 0xa45c19ee1ddfa3971a75affe2da0c01e0a09406bb4b50c48e0d9cf0e082801a3
  15. 0x4698ebc7cbcb2286f661b867355eb6a9183e884482ee16965889e886b17d19ac
  16. 0x35e8995c30094446ec790423171382fccb377081b921295b0ae3840cc2c4f52c
  17. 0xf078ea7d84d98dbeffed23d8e67b36751e60464ffd4cfdc005e0aa6f8cb9b459
  18. 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
Day root
0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
Chained
0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
Published
On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae

How to check it · This row as JSON