addrbookFor publishers
← The evidence ledger

Evidence row 308547

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 9fb29c2a-081e-4dbc-a20d-ce0568ea68e4
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
dd4d5546f2af67dde1941ade1cbcfaf05a4ec79bac114a6e63cba19b4171dde9
Leaf
0x6548ecaca83cde286d0c375ac39b77055dd34422e6cd54cb40f50ca26d2dc373

What was observed

{
  "count": 19,
  "tools": [
    {
      "description": "Counts at a glance: live, queued, filled. Use status for the live product.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "book_stats"
    },
    {
      "description": "One product by slug. Prefer status.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "id": {
            "description": "chain slug",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_chain"
    },
    {
      "description": "Hold your human a spot on the live product. Needs their email. Returns the price this spot locks and a link where they save a card; the spot is held once they do. The first spots lock at the early price; every spot after locks at the group price. The result says which one this spot got. Nothing is charged now. If the product fills, the deposit is charged and applied to their purchase; they pay the balance to the brand. If it doesn't fill, nobody pays. Stripe test mode. Test cards only, no real money moves.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "chain": {
            "description": "a product slug; leave it out for what's live",
            "type": "string"
          },
          "email": {
            "description": "your human's email",
            "minLength": 3,
            "type": "string"
          },
          "invite_code": {
            "description": "not needed any more",
            "type": "string"
          },
          "max_price_usd": {
            "description": "optional cap on the deposit in dollars",
            "type": "number"
          },
          "name": {
            "description": "first name and last initial, shown on the product page",
            "maxLength": 40,
            "type": "string"
          },
          "ref": {
            "description": "a referral code from another buyer's link, the r= part",
            "maxLength": 16,
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "hold"
    },
    {
      "description": "The old name for hold. Hold your human a spot on the live product. Needs their email. Returns the price this spot locks and a link where they save a card; the spot is held once they do. The first spots lock at the early price; every spot after locks at the group price. The result says which one this spot got. Nothing is charged now. If the product fills, the deposit is charged and applied to their purchase; they pay the balance to the brand. If it doesn't fill, nobody pays. Stripe test mode. Test cards only, no real money moves.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "chain": {
            "description": "a product slug; leave it out for what's live",
            "type": "string"
          },
          "email": {
            "description": "your human's email",
            "minLength": 3,
            "type": "string"
          },
          "invite_code": {
            "description": "not needed any more",
            "type": "string"
          },
          "max_price_usd": {
            "description": "optional cap on the deposit in dollars",
            "type": "number"
          },
          "name": {
            "description": "first name and last initial, shown on the product page",
            "maxLength": 40,
            "type": "string"
          },
          "ref": {
            "description": "a referral code from another buyer's link, the r= part",
            "maxLength": 16,
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "join"
    },
    {
      "description": "The old v1 join. Use hold instead.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "id": {
            "type": "string"
          },
          "monthly_commit_usd": {
            "type": "number"
          },
          "team_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "join_chain"
    },
    {
      "description": "The old name for release. Release a held spot. Needs the product slug, the email that holds it, and the commitment id from hold or status. Nothing is charged for a released spot.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "chain": {
            "description": "product slug",
            "minLength": 1,
            "type": "string"
          },
          "commitment_id": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "chain",
          "email",
          "commitment_id"
        ],
        "type": "object"
      },
      "name": "leave"
    },
    {
      "description": "Every product btw has run or queued: the live one, what's up next by wants, and what filled or closed. Use status for the live one.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "list_chains"
    },
    {
      "description": "What your human's btw agent is watching, with a status on each thing: watching (counting the other agents), group forming (enough want it that btw is talking to the brand), or live (there's a price and a deadline, hold a spot). Takes their email. The list opens once they've clicked the confirm link btw emailed them the first time you called.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "email": {
            "description": "your human's email",
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "my_agent"
    },
    {
      "description": "Old style: park what your human wants in plain words with the most they'd pay. Prefer want with a link.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "description": {
            "description": "what your human wants, plainly",
            "maxLength": 200,
            "minLength": 3,
            "type": "string"
          },
          "email": {
            "description": "optional, so we can say when a chain opens",
            "type": "string"
          },
          "max_price_usd": {
            "description": "the most they'd pay, in dollars",
            "type": "number"
          }
        },
        "required": [
          "description",
          "max_price_usd"
        ],
        "type": "object"
      },
      "name": "park"
    },
    {
      "description": "The old v1 park. Use want with a link instead.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "type": "string"
          },
          "min_discount_pct": {
            "type": "number"
          },
          "monthly_cap_usd": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "park_intent"
    },
    {
      "description": "Release a held spot. Needs the product slug, the email that holds it, and the commitment id from hold or status. Nothing is charged for a released spot.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "chain": {
            "description": "product slug",
            "minLength": 1,
            "type": "string"
          },
          "commitment_id": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "chain",
          "email",
          "commitment_id"
        ],
        "type": "object"
      },
      "name": "release"
    },
    {
      "description": "What's live: the product, its list and group price, how many buyers unlock the price, how many are committed, how many want it, spots left, and the deadline if one is set. Give a slug to ask about another product, and an email to also see that person's spot.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "chain": {
            "description": "a product slug; leave it out for what's live",
            "type": "string"
          },
          "email": {
            "description": "check this person's spot",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "status"
    },
    {
      "description": "Read a public wishlist and add every item to your human's btw agent. Amazon wishlists and Steam wishlists. Takes the list link plus their email; a new email gets an agent. Returns the items found and how many other agents want each one. If the server can't read the list, the reply says so; then open the list yourself and pass the ASINs, or call want once per product link. btw doesn't buy from Amazon. The link is how we know what you want; the group price comes from the brand.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "asins": {
            "description": "ASINs you read off the list yourself, up to 100",
            "items": {
              "maxLength": 20,
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "email": {
            "description": "your human's email, same as the waitlist",
            "minLength": 3,
            "type": "string"
          },
          "url": {
            "description": "the list link. Amazon: open the list, tap Share, copy the link. Steam: the profile's wishlist page",
            "maxLength": 2000,
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "sync_wishlist"
    },
    {
      "description": "Old style: put your human on the list to hear when the next product goes live. Prefer want with a link, or hold on what's live. Needs their email. Optionally say what they want to buy and which agent platform you are.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "email": {
            "description": "your human's email",
            "type": "string"
          },
          "platform": {
            "description": "your agent platform, like claude, grok, chatgpt, other",
            "maxLength": 40,
            "type": "string"
          },
          "referral": {
            "description": "a friend's referral code or link, if you came through one",
            "maxLength": 120,
            "type": "string"
          },
          "want": {
            "description": "what your human wants to buy, plainly",
            "maxLength": 200,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "waitlist"
    },
    {
      "description": "Add something to your human's btw agent. Takes a link or an ASIN plus their email; a new email gets an agent. A hotel link becomes a stay (give month, and nights if known), a subscription link becomes software (give plan), anything else is gear. Or set type and the fields outright: stay needs hotel and month, home needs job and zip, software needs product and plan. Their agent starts watching it and the reply says how many other agents already want it. If you already read a page yourself, pass asins instead of a link. btw doesn't buy from Amazon. The link is how we know what you want; the group price comes from the brand.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "asin": {
            "description": "an Amazon ASIN, 10 letters and digits",
            "maxLength": 20,
            "type": "string"
          },
          "asins": {
            "description": "ASINs you read off a page yourself, up to 100",
            "items": {
              "maxLength": 20,
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "email": {
            "description": "your human's email, same as the waitlist",
            "minLength": 3,
            "type": "string"
          },
          "hotel": {
            "description": "stay: hotel name or link",
            "maxLength": 200,
            "type": "string"
          },
          "job": {
            "description": "home: solar, home-battery, ev-charger, heat-pump, roof, windows, sauna-install, other",
            "maxLength": 40,
            "type": "string"
          },
          "month": {
            "description": "stay: month as YYYY-MM",
            "maxLength": 7,
            "type": "string"
          },
          "name": {
            "description": "gym: the gym or studio name",
            "maxLength": 80,
            "type": "string"
          },
          "nights": {
            "description": "stay: nights, if known",
            "maximum": 60,
            "minimum": 1,
            "type": "integer"
          },
          "note": {
            "description": "home or stay: a short note",
            "maxLength": 200,
            "type": "string"
          },
          "plan": {
            "description": "software: individual, family, team, other",
            "maxLength": 20,
            "type": "string"
          },
          "product": {
            "description": "software: product name or link",
            "maxLength": 200,
            "type": "string"
          },
          "type": {
            "description": "skip auto-detection and say the type",
            "enum": [
              "gear",
              "stay",
              "home",
              "software",
              "gym"
            ],
            "type": "string"
          },
          "url": {
            "description": "a product, hotel, or subscription link",
            "maxLength": 2000,
            "type": "string"
          },
          "zip": {
            "description": "home: five digit US zip",
            "maxLength": 10,
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "want"
    },
    {
      "description": "Your human wants a membership at a gym or studio near them. Takes the name, their five digit zip, the plan (monthly, annual, class-pack, other), and their email. People near the same gym on the same plan count together; when enough do, btw asks for a group rate.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "email": {
            "description": "your human's email, same as the waitlist",
            "minLength": 3,
            "type": "string"
          },
          "name": {
            "description": "gym or studio name",
            "maxLength": 80,
            "minLength": 2,
            "type": "string"
          },
          "plan": {
            "description": "the plan",
            "enum": [
              "monthly",
              "annual",
              "class-pack",
              "other"
            ],
            "type": "string"
          },
          "zip": {
            "description": "five digit US zip",
            "maxLength": 10,
            "minLength": 5,
            "type": "string"
          }
        },
        "required": [
          "name",
          "zip",
          "plan",
          "email"
        ],
        "type": "object"
      },
      "name": "want_gym"
    },
    {
      "description": "Your human wants a home job done: solar, home-battery, ev-charger, heat-pump, roof, windows, sauna-install, other. Takes the job, their five digit zip, an optional note, and their email. Homes near each other wanting the same job count together; when enough do, btw gets a group quote from local installers. Returns how many others nearby want it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "email": {
            "description": "your human's email, same as the waitlist",
            "minLength": 3,
            "type": "string"
          },
          "job": {
            "description": "the job",
            "enum": [
              "solar",
              "home-battery",
              "ev-charger",
              "heat-pump",
              "roof",
              "windows",
              "sauna-install",
              "other"
            ],
            "type": "string"
          },
          "note": {
            "description": "anything the installer should know",
            "maxLength": 200,
            "type": "string"
          },
          "zip": {
            "description": "five digit US zip",
            "maxLength": 10,
            "minLength": 5,
            "type": "string"
          }
        },
        "required": [
          "job",
          "zip",
          "email"
        ],
        "type": "object"
      },
      "name": "want_home"
    },
    {
      "description": "Your human wants a software subscription at group pricing. Takes the product (name or link), the plan (individual, family, team, other), and their email. Annual plans; vendors already have volume tiers and btw brings the volume. Returns how many others want the same product on the same plan.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "email": {
            "description": "your human's email, same as the waitlist",
            "minLength": 3,
            "type": "string"
          },
          "plan": {
            "description": "the plan",
            "enum": [
              "individual",
              "family",
              "team",
              "other"
            ],
            "type": "string"
          },
          "product": {
            "description": "product name or a link to it",
            "maxLength": 200,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "product",
          "plan",
          "email"
        ],
        "type": "object"
      },
      "name": "want_software"
    },
    {
      "description": "Your human wants a hotel in a given month. Takes the hotel (name or link), the month as YYYY-MM, nights if known, and their email. People wanting the same hotel in the same month count together; when enough do, btw asks the hotel for a group rate. Returns how many others want it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "email": {
            "description": "your human's email, same as the waitlist",
            "minLength": 3,
            "type": "string"
          },
          "hotel": {
            "description": "hotel name or a link to it",
            "maxLength": 200,
            "minLength": 2,
            "type": "string"
          },
          "month": {
            "description": "month as YYYY-MM",
            "maxLength": 7,
            "minLength": 6,
            "type": "string"
          },
          "nights": {
            "description": "nights, if known",
            "maximum": 60,
            "minimum": 1,
            "type": "integer"
          },
          "note": {
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "hotel",
          "month",
          "email"
        ],
        "type": "object"
      },
      "name": "want_stay"
    }
  ]
}

What the leaf hashes

{"body":"dd4d5546f2af67dde1941ade1cbcfaf05a4ec79bac114a6e63cba19b4171dde9","id":308547,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793058329342789,"prev":null,"subject":"9fb29c2a-081e-4dbc-a20d-ce0568ea68e4","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. 0x654952bf421abf4861caa8a2e4c26750f83405dc1c0d7a9b32b77e0ebe8e1d03
  2. 0xc762de75b3ddb977c3582290460ab841f33ca929b1472673bfacbe379c3408b9
  3. 0xa4363ee7eb6f729a409673692860a38f6309e61b2fdf86b4c982facff40db15b
  4. 0xedbcf910bf1535033d4942606e2475481d2c50ad56a3991d8d714c4a1a40d770
  5. 0x2073af842ba0d705090e9161628345dc64bb2e5ae9d75074adc313d2c96506e3
  6. 0x2a8eea08a8b0ce92b573122a45547a1cb552979e55303d2f4962c69291e9fe15
  7. 0x61030fe23f4d276ce93b167d627001f3d46424f0526da91037ef5a1400a40a39
  8. 0x783fd807d1f03adeed3f1766a928c35c75d051fd7f20233980922f5b25aafd4c
  9. 0x99e5d6706be7a42fa8f66626946e344567a34e5706fbfe7eb4a69dd3ab2ec578
  10. 0x4f5003bce752e6ac469e47bf82675ea21f50214ee22f0e5008b8629a3298bfbd
  11. 0x2184826674dda59cfc6d24bc12b2c70a5f4db29f874e67fded919c1410503d2e
  12. 0x611b1c1b68d04a71934006e383071a8f3836400d60beb86d81dd038bc102029f
  13. 0x13f4b94ecf613d585c952b5363dad2b247a55371eb8e358bb89dc033e83128b1
  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