addrbookFor publishers
← The evidence ledger

Evidence row 256964

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 3053d01b-a60e-4107-b4a0-62d547e289b8
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d16314a7bc6f69b65846bfa99b3408ea2c74a1f0b465541b52685c881aaedd54
Leaf
0x2425dc993b255948b5eb1ce01c7eea2ac6500f2f5c2166e0bf7fa3a12ea5acb6

What was observed

{
  "count": 11,
  "tools": [
    {
      "description": "Record something one person paid for the group. Split equally by default; pass split_between for a subset, or shares for an uneven split. One expense covers one set of people — a receipt whose items aren't all shared by everyone is several expenses, so call this once per group of items that the same people share, rather than splitting the total equally. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "amount": {
            "description": "Amount in the split's currency, as a decimal (e.g. 249.50).",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "date": {
            "description": "Date as YYYY-MM-DD. Defaults to today.",
            "type": "string"
          },
          "description": {
            "description": "What it was, e.g. \"Groceries\".",
            "type": "string"
          },
          "paid_by": {
            "description": "Who paid — a participant's name (or id) in this split. A card receipt rarely names the payer, so ask unless you know: guess wrong and every balance points the wrong way. If the user counts themselves among the participants, assume it was them and say that you assumed it — what you must not do is pick a payer silently.",
            "type": "string"
          },
          "shares": {
            "description": "Uneven split. Either an exact `amount` per person (must add up to the total) or a relative `weight` per person (e.g. weight 2 for a couple). Don't combine with split_between.",
            "items": {
              "properties": {
                "amount": {
                  "exclusiveMinimum": 0,
                  "type": "number"
                },
                "participant": {
                  "type": "string"
                },
                "weight": {
                  "exclusiveMinimum": 0,
                  "type": "number"
                }
              },
              "required": [
                "participant"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          },
          "split_between": {
            "description": "Names of the people sharing this cost, split equally. Defaults to everyone.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "split",
          "amount",
          "paid_by"
        ],
        "type": "object"
      },
      "name": "add_expense"
    },
    {
      "description": "Add someone to an existing split. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "name"
        ],
        "type": "object"
      },
      "name": "add_participant"
    },
    {
      "description": "Create a new xupersplit for sharing expenses in a group. No account needed. Returns a secret link — give it to the user and tell them to share it with the group, since anyone holding the link can see and edit the split.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "currency": {
            "description": "Currency code. Defaults to SEK.",
            "enum": [
              "SEK",
              "EUR",
              "USD",
              "NOK",
              "DKK",
              "ISK",
              "GBP",
              "CHF",
              "PLN",
              "THB",
              "SATS"
            ],
            "type": "string"
          },
          "participants": {
            "description": "Names of everyone splitting, at least two.",
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "minItems": 2,
            "type": "array"
          },
          "title": {
            "description": "What the split is for, e.g. \"Ski trip\".",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "title",
          "participants"
        ],
        "type": "object"
      },
      "name": "create_split"
    },
    {
      "description": "Remove an expense or payment for good. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "entry_id": {
            "description": "The entry's id, from get_split.",
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "entry_id"
        ],
        "type": "object"
      },
      "name": "delete_entry"
    },
    {
      "description": "Read a split: participants, expenses, per-person balances and the shortest set of payments that settles everyone up.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          }
        },
        "required": [
          "split"
        ],
        "type": "object"
      },
      "name": "get_split"
    },
    {
      "description": "Record that one person paid another back, settling part or all of a debt. Use get_split first to see who should pay whom. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "amount": {
            "description": "Amount in the split's currency, as a decimal (e.g. 249.50).",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "date": {
            "description": "Date as YYYY-MM-DD. Defaults to today.",
            "type": "string"
          },
          "description": {
            "description": "How it was paid, e.g. \"Swish, 3 March\". Shown in the history.",
            "type": "string"
          },
          "from": {
            "description": "Who sent the money — a participant's name (or id) in this split.",
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          },
          "to": {
            "description": "Who received it — a participant's name (or id) in this split.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "from",
          "to",
          "amount"
        ],
        "type": "object"
      },
      "name": "record_payment"
    },
    {
      "description": "Remove someone from a split. Only works if they aren't on any expense yet. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "participant": {
            "description": "Who to remove — a participant's name (or id) in this split.",
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "participant"
        ],
        "type": "object"
      },
      "name": "remove_participant"
    },
    {
      "description": "Change a participant's name. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "name": {
            "description": "The new name.",
            "minLength": 1,
            "type": "string"
          },
          "participant": {
            "description": "Who to rename — a participant's name (or id) in this split.",
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "participant",
          "name"
        ],
        "type": "object"
      },
      "name": "rename_participant"
    },
    {
      "description": "Set how a participant wants to be paid back, so the split can show a QR code or pay link. Replaces their current list (pass an empty array to clear it). Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "methods": {
            "items": {
              "properties": {
                "type": {
                  "enum": [
                    "swish",
                    "vipps",
                    "mobilepay",
                    "revolut",
                    "lightning",
                    "evm",
                    "solana",
                    "iban"
                  ],
                  "type": "string"
                },
                "value": {
                  "description": "Phone number for swish/vipps/mobilepay, IBAN, Revolut tag, Lightning address, 0x/ENS address, or Solana address.",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "value"
              ],
              "type": "object"
            },
            "maxItems": 8,
            "type": "array"
          },
          "participant": {
            "description": "Whose details these are — a participant's name (or id) in this split.",
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "participant",
          "methods"
        ],
        "type": "object"
      },
      "name": "set_payment_methods"
    },
    {
      "description": "Change an existing expense or payment. Only the fields you pass are changed. Entry ids come from get_split. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "amount": {
            "description": "Amount in the split's currency, as a decimal (e.g. 249.50).",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "date": {
            "description": "Date as YYYY-MM-DD. Defaults to today.",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "entry_id": {
            "description": "The entry's id, from get_split.",
            "type": "string"
          },
          "paid_by": {
            "description": "Move the entry to a different payer.",
            "type": "string"
          },
          "shares": {
            "description": "Uneven split. Either an exact `amount` per person (must add up to the total) or a relative `weight` per person (e.g. weight 2 for a couple). Don't combine with split_between.",
            "items": {
              "properties": {
                "amount": {
                  "exclusiveMinimum": 0,
                  "type": "number"
                },
                "participant": {
                  "type": "string"
                },
                "weight": {
                  "exclusiveMinimum": 0,
                  "type": "number"
                }
              },
              "required": [
                "participant"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          },
          "split_between": {
            "description": "Names of the people sharing this cost, split equally. Defaults to everyone.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "to": {
            "description": "New recipient — payments only.",
            "type": "string"
          }
        },
        "required": [
          "split",
          "entry_id"
        ],
        "type": "object"
      },
      "name": "update_entry"
    },
    {
      "description": "Change a split's title or currency. The currency is locked once the split has expenses. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "currency": {
            "enum": [
              "SEK",
              "EUR",
              "USD",
              "NOK",
              "DKK",
              "ISK",
              "GBP",
              "CHF",
              "PLN",
              "THB",
              "SATS"
            ],
            "type": "string"
          },
          "split": {
            "description": "The split key, or the whole https://split.xuper.fun/k/<key> link.",
            "type": "string"
          },
          "title": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "split"
        ],
        "type": "object"
      },
      "name": "update_split"
    }
  ]
}

What the leaf hashes

{"body":"d16314a7bc6f69b65846bfa99b3408ea2c74a1f0b465541b52685c881aaedd54","id":256964,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793029432198108,"prev":null,"subject":"3053d01b-a60e-4107-b4a0-62d547e289b8","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. 0x2425fcacc374d36262a9b19c94c4c11c6afc6354294a31bc51f2107f844d3653
  2. 0x623d17f31c5a299029d0129a3de0b2a4434d4c2012e8466ad631a490071ee6c0
  3. 0x5b54252d8eb2879d3de615084c9551db2ef1d03773e91113b447c681b750253b
  4. 0x15b3230185b8add6101c092e0bf267399bb3149ceafc19f2fe472a12d875e90e
  5. 0x6737b4aa8a36336f7251552fbd5ad709d59848525a076f25602c8eb27d3d0f1b
  6. 0x1d6478c3390642f60d8270d0a5e4d4a60e800b72d27e037403bb29c38b05fbf3
  7. 0x5bf8d219b3204d9f2fe0fd006f6f0b9d18fb4fe3c08ebdca43b7e634723e5fa5
  8. 0x978958531254a4298420ec55c84a3366d31c07f117caa7fec6c225211ec5562f
  9. 0x3bfb38f380d8dbf47928cadc45d6bd11b5134668387e8c5f016472eb81ece3f9
  10. 0x2a32852d08f3dbad9d322dd91bc905c97a70f059d4f616e591b3fe5721ef2000
  11. 0x395ecef2713b13f9a2a88fe836fbc1a4e94906043e3938cd3fd16627be6b95de
  12. 0x2ceb9cc3a43f479e6ab73db5d3d474a93995fb4188ee45f71846b4cf537a0016
  13. 0x830b2c874449c7499489eba2baa67d49f991298225763c0161b471621038d0fb
  14. 0xd843afcced75dedd39194ff9bd12326b88099e6112686db2299392d022dc3146
  15. 0xc3a6a3ae44ec0da1848b16d40c45d7aac97a67352eea8df18e0f26edabea8a2f
  16. 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON