addrbookFor publishers
← The evidence ledger

Evidence row 291900

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 8e6287e0-ac72-42d4-bad4-076c61f5aa1b
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
a9f0950431e8c5bd3270fa7d287182b868649c1c333bf9267a1eaf7b22210ab2
Leaf
0x677d2af6cfe870f468e0c072476ceeebc1cece6590248802b3e52b73f4c611c7

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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "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": "Rate category, e.g. savings, cds, money-market, checking, mortgage.",
            "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":"a9f0950431e8c5bd3270fa7d287182b868649c1c333bf9267a1eaf7b22210ab2","id":291900,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048398622052,"prev":null,"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 (296695 rows).

  1. 0x677d4794400c49a3180322fec3d84abd3913f7a19039fd98655617d904ce5ab4
  2. 0xfafe778b418e97cc28b51752a2f49fb6bc0a46d614ed33c235513f15859c11d1
  3. 0xe005bc19ef670086f86ee8981827a0c5c5328b04150e5286585df10cb3419f4f
  4. 0xb685b471fc170d3b8ee46c075093d4d87196d7691ef42d8003ed918e7c7fea0b
  5. 0xfc40c7feea6e453e23d21c27c6edc9c8ea6be54722864ac52cf4f34d07b6dbfe
  6. 0x3930470c14f1e6eefeff25187afc6109a090d99ea9ce2053665b442baabe91c8
  7. 0x817b9bba6750dadb12a8dcd0ef24c48f26d44c6f08a0c2313ac65097adfd2c30
  8. 0x819cae8af16dcdd07498610fc65166d36773d804127e98998f2f3473a7f2cbf8
  9. 0xb90dcc0e1e554e6cb26d16f607798d65569313093d98a3ea8cf8c7ba864c7fa2
  10. 0x8abff743dd157f0225d59527cbd5a558fe9044a13b8251e90cdf945d405603a0
  11. 0x13951c97c827e2025801573dada28cfb5f8038c9b4de741f9d526cb67b3fe605
  12. 0x260682fd6ecd274e73505c5e0bd798abdd0e702afca4f8eebd4331b607a6b175
  13. 0x5f350d70c252ff1169c0210fd45fce1b0ab8d7316f048741a9e90a6c8cb65dcf
  14. 0x9a79c65e077cd9da9d436b3ade6f5ddc0d244510c4d5903ef2f02d81205f7666
  15. 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON