addrbookFor publishers
← The evidence ledger

Evidence row 561561

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 23047bd5-dd68-41be-9d3b-3d21cb990943
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
8afb299124b8ad52eafa8820a3cc8b8f0f48234f727b5077ed4293f9819fa193
Leaf
0x4eb499ad3247d23c534b09396c64951aa2a03efeb5954ade1bc7fcc071f5821d

What was observed

{
  "count": 12,
  "tools": [
    {
      "description": "Cancel an in-flight gift and receive the refund amount. Free. Only possible before the booklet goes to print; once printing has started it fails with cancel_too_late. Pass the gift_id from create_gift and an optional reason for your records.",
      "inputSchema": {
        "properties": {
          "gift_id": {
            "description": "The gift_id returned by create_gift, identifying the order to cancel.",
            "type": "string"
          },
          "reason": {
            "description": "Optional human-readable reason for the cancellation, recorded on the order.",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "gift_id"
        ],
        "type": "object"
      },
      "name": "cancel_gift"
    },
    {
      "description": "Place the order: write, print, and mail the booklet. CHARGES the buyer. The recipient is whoever you name in recipient, which may be your own user. Idempotent on idempotency_key for 24 hours. Pass shared_payment_token to pay tokenlessly, or omit it to charge the account's saved card.",
      "inputSchema": {
        "properties": {
          "agent_note": {
            "description": "Optional note from the agent, stored with the order for support. Never printed in the booklet.",
            "maxLength": 500,
            "type": "string"
          },
          "brief": {
            "description": "Structured brief about the recipient: what to celebrate, what to tease gently, and the inside jokes worth knowing.",
            "properties": {
              "celebrate": {
                "items": {
                  "maxLength": 140,
                  "minLength": 4,
                  "type": "string"
                },
                "maxItems": 8,
                "minItems": 2,
                "type": "array"
              },
              "do_not_mention": {
                "items": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 8,
                "minItems": 0,
                "type": "array"
              },
              "image_brief": {
                "maxLength": 300,
                "type": "string"
              },
              "image_model": {
                "enum": [
                  "flux_2_pro",
                  "imagen_4",
                  "ideogram_3",
                  "recraft_v4",
                  "gpt_image_2",
                  "nano_banana_2"
                ],
                "type": "string"
              },
              "in_jokes": {
                "items": {
                  "maxLength": 200,
                  "minLength": 4,
                  "type": "string"
                },
                "maxItems": 6,
                "minItems": 0,
                "type": "array"
              },
              "recipient_first_name": {
                "maxLength": 40,
                "minLength": 1,
                "pattern": "^[a-zA-Z\\s'-]+$",
                "type": "string"
              },
              "tease_gently": {
                "items": {
                  "maxLength": 140,
                  "minLength": 4,
                  "type": "string"
                },
                "maxItems": 6,
                "minItems": 0,
                "type": "array"
              },
              "tone": {
                "enum": [
                  "warm_with_ribbing",
                  "warm_only",
                  "deep_appreciation"
                ],
                "type": "string"
              },
              "voice": {
                "enum": [
                  "hype_man",
                  "best_friend",
                  "conspiracy"
                ],
                "type": "string"
              }
            },
            "required": [
              "recipient_first_name",
              "voice",
              "tone",
              "celebrate"
            ],
            "type": "object"
          },
          "format": {
            "description": "Booklet format. Only manual_v1, a 16-page booklet, is supported today.",
            "enum": [
              "manual_v1"
            ],
            "type": "string"
          },
          "idempotency_key": {
            "description": "Caller-chosen key that makes this order idempotent for 24 hours. Reuse the same key to retry safely without charging twice.",
            "maxLength": 64,
            "minLength": 8,
            "type": "string"
          },
          "preview_before_print": {
            "description": "If true, the gift pauses for buyer review before printing instead of printing automatically.",
            "type": "boolean"
          },
          "recipient": {
            "description": "Who receives the booklet and where to mail it. Pass an inline recipient with a US ship_to, or a saved recipient_id.",
            "oneOf": [
              {
                "properties": {
                  "recipient_id": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "recipient_id"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "first_name": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z\\s'-]+$",
                    "type": "string"
                  },
                  "ship_to": {
                    "properties": {
                      "city": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "country": {
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "^[A-Z]{2}$",
                        "type": "string"
                      },
                      "line1": {
                        "maxLength": 120,
                        "minLength": 1,
                        "type": "string"
                      },
                      "line2": {
                        "maxLength": 120,
                        "type": "string"
                      },
                      "name": {
                        "maxLength": 100,
                        "minLength": 1,
                        "type": "string"
                      },
                      "phone": {
                        "maxLength": 30,
                        "type": "string"
                      },
                      "postal_code": {
                        "maxLength": 20,
                        "minLength": 1,
                        "type": "string"
                      },
                      "region": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "line1",
                      "city",
                      "region",
                      "postal_code",
                      "country"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "first_name",
                  "ship_to"
                ],
                "type": "object"
              }
            ]
          },
          "shared_payment_token": {
            "description": "Single-use Stripe Shared Payment Token (spt_...) to pay without a stored card. Omit to charge the account default.",
            "pattern": "^spt_",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "brief",
          "recipient"
        ],
        "type": "object"
      },
      "name": "create_gift"
    },
    {
      "description": "Return a hosted Stripe link for the buyer to save a card or wallet to the account. After that, create_gift without a shared_payment_token charges the saved card.",
      "inputSchema": {
        "properties": {
          "return_url": {
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "create_setup_link"
    },
    {
      "description": "Return this account's spending caps and month-to-date spend. Free. Use it to confirm budget before create_gift.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "get_account"
    },
    {
      "description": "Fetch a gift by gift_id and return its full resource: status, voice, format, pricing, the recipient, and fulfillment (Lulu job id, carrier, tracking URL, estimated delivery). Free and read-only. Use it to poll progress after create_gift: status advances through the pipeline to shipped then delivered, or ends at held, refused, cancelled, or failed.",
      "inputSchema": {
        "properties": {
          "gift_id": {
            "description": "The gift_id returned by create_gift, identifying the order to fetch.",
            "type": "string"
          }
        },
        "required": [
          "gift_id"
        ],
        "type": "object"
      },
      "name": "get_gift"
    },
    {
      "description": "Compute the exact total for a hypothetical gift (format, voice, image model, ship_to) before you commit. Free, no order is created. Call before create_gift so you know the charge.",
      "inputSchema": {
        "properties": {
          "format": {
            "description": "Booklet format to price. Only manual_v1 is supported today.",
            "enum": [
              "manual_v1"
            ],
            "type": "string"
          },
          "image_model": {
            "description": "Optional cover image model id. Some models add a small per-call cost.",
            "type": "string"
          },
          "ship_to": {
            "description": "Destination address. US is supported; the total and tax depend on the destination.",
            "properties": {
              "city": {
                "maxLength": 60,
                "minLength": 1,
                "type": "string"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Z]{2}$",
                "type": "string"
              },
              "line1": {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              "line2": {
                "maxLength": 120,
                "type": "string"
              },
              "name": {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "phone": {
                "maxLength": 30,
                "type": "string"
              },
              "postal_code": {
                "maxLength": 20,
                "minLength": 1,
                "type": "string"
              },
              "region": {
                "maxLength": 60,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "name",
              "line1",
              "city",
              "region",
              "postal_code",
              "country"
            ],
            "type": "object"
          },
          "voice": {
            "description": "Optional comedic voice. It does not change the price; accepted for parity with create_gift.",
            "enum": [
              "hype_man",
              "best_friend",
              "conspiracy"
            ],
            "type": "string"
          }
        },
        "required": [
          "ship_to"
        ],
        "type": "object"
      },
      "name": "get_pricing"
    },
    {
      "description": "List supported booklet formats. There is one today: manual_v1, a 16-page booklet. Free, no side effects.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_formats"
    },
    {
      "description": "Paginated list of gifts on the account, with optional status and date filters. Free.",
      "inputSchema": {
        "properties": {
          "cursor": {
            "description": "Opaque pagination cursor from a previous list_gifts response.",
            "type": "string"
          },
          "limit": {
            "description": "Maximum number of gifts to return, 1 to 100. Defaults to 50.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "since": {
            "description": "Only return gifts created at or after this ISO 8601 timestamp.",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "Only return gifts in this status, for example shipped, delivered, or cancelled.",
            "enum": [
              "created",
              "validating",
              "generating",
              "output_validating",
              "rendering",
              "awaiting_buyer_preview",
              "queued_for_print",
              "printed",
              "shipped",
              "delivered",
              "held",
              "refused",
              "cancelled",
              "failed"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_gifts"
    },
    {
      "description": "List supported cover image models and their per-call cost. Free, no side effects.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_image_models"
    },
    {
      "description": "Return the account's saved recipients (address book). Free. Reuse a recipient_id in create_gift instead of re-entering an address.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_recipients"
    },
    {
      "description": "List the three comedic voices (Hype Man, Best Friend Roast, Conspiracy Theorist) and the cover image model each prefers. Free, no side effects. Call this first to pick a voice.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_voices"
    },
    {
      "description": "Run the content policy on a brief without charging or ordering. Free. Call before create_gift so a refusal surfaces early. A booklet that would wound the recipient is refused here, not at charge time.",
      "inputSchema": {
        "properties": {
          "brief": {
            "description": "The same brief you would pass to create_gift. It is checked against the content policy, free, with no order created.",
            "properties": {
              "celebrate": {
                "items": {
                  "maxLength": 140,
                  "minLength": 4,
                  "type": "string"
                },
                "maxItems": 8,
                "minItems": 2,
                "type": "array"
              },
              "do_not_mention": {
                "items": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 8,
                "minItems": 0,
                "type": "array"
              },
              "image_brief": {
                "maxLength": 300,
                "type": "string"
              },
              "image_model": {
                "enum": [
                  "flux_2_pro",
                  "imagen_4",
                  "ideogram_3",
                  "recraft_v4",
                  "gpt_image_2",
                  "nano_banana_2"
                ],
                "type": "string"
              },
              "in_jokes": {
                "items": {
                  "maxLength": 200,
                  "minLength": 4,
                  "type": "string"
                },
                "maxItems": 6,
                "minItems": 0,
                "type": "array"
              },
              "recipient_first_name": {
                "maxLength": 40,
                "minLength": 1,
                "pattern": "^[a-zA-Z\\s'-]+$",
                "type": "string"
              },
              "tease_gently": {
                "items": {
                  "maxLength": 140,
                  "minLength": 4,
                  "type": "string"
                },
                "maxItems": 6,
                "minItems": 0,
                "type": "array"
              },
              "tone": {
                "enum": [
                  "warm_with_ribbing",
                  "warm_only",
                  "deep_appreciation"
                ],
                "type": "string"
              },
              "voice": {
                "enum": [
                  "hype_man",
                  "best_friend",
                  "conspiracy"
                ],
                "type": "string"
              }
            },
            "required": [
              "recipient_first_name",
              "voice",
              "tone",
              "celebrate"
            ],
            "type": "object"
          }
        },
        "required": [
          "brief"
        ],
        "type": "object"
      },
      "name": "validate_brief"
    }
  ]
}

What the leaf hashes

{"body":"8afb299124b8ad52eafa8820a3cc8b8f0f48234f727b5077ed4293f9819fa193","id":561561,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793137189246055,"prev":null,"subject":"23047bd5-dd68-41be-9d3b-3d21cb990943","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. 0x4eb4d26d7dec13407bfb4d60f31e9ea6aa5a83f52de22ae459a81c5152cb2e03
  2. 0xa68e2f2400ed0d8d3238f6c74b0a1f26f737dfc9b8a1cf6ddfc391e054097fc3
  3. 0x271f78494003d47cdaefc0028d3f2917f698ea588ffe1b3a0421dc048141f797
  4. 0x168fd1ab089d898dcc58490eef59e68e82f2023fc5fb0ebb08d57758d5c3a9e4
  5. 0x34db8201419242170d9b9647c58547a664e87f95d05d6d1a4e50137f34a8982e
  6. 0xf096ac615a40046a3b8aa7f325463b618800f9da17c958241bda1af165bcb7ca
  7. 0xadf4b039934315baa5d0cbdd7999efa083b406d12fbb813f92332fda0b4f5028
  8. 0x2c2241ae50ecce47119cf1819a3b47694b7a5cc2b8495dac2b43ce5727c0af32
  9. 0x7b040db36717bf5f90682a4210b48f352cf2e5e2eac383ea0f67858e61b2258c
  10. 0xb1d27b4fae8f70292481345cacd8056ea2ba2d9b1c0987869182b010e6e6f069
  11. 0x906219e11d9076acac52c739ab17862b442ad8da02bbfce9ece4c281b2c106eb
  12. 0xf9b21ec258212225fc012a1ed6399d0ec608e930f4423d2badb8be79550861ef
  13. 0x797da99476c7ebaa971607ae725e5e240b79de9e49d28859b94de107c850aaab
  14. 0x9ea0c6a53f80a30b6f13671109f98a000cf98e581875129f4be4b57131d06364
  15. 0xb78ea6a255dd06e2f402a1a733bca392fa6243920bcba95e8b80bdfc6ce5f553
  16. 0x3ed50f053eca72dfd3a9d45a11935240bfe691e57835c367ddebe2cbc49efe9d
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON