addrbookFor publishers
← The evidence ledger

Evidence row 2115383

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 062e308f-2c24-4a6a-86ff-d44bb2a552cb
Recorded
Previous row
#1474304
Body SHA-256
2d9c413fb03c9bef49ff49b9143244e38f8a777180ec032d379ab1c5f135c25a
Leaf
0xd6aaeac9f4d48eeba931cc6f00be6878a849f578286634c8cedc9ff7f41cae95

What was observed

{
  "count": 13,
  "tools": [
    {
      "description": "Creators only, on their own Piku account (asks them to connect). Prepare an invoice to one of the creator's clients as a Draft, paid in full or split. client.email is where the link goes: without it (and send_by email or both) the tool answers needs_client_email. send_by self emails nothing. Nothing is sent and no number is used: a Draft goes to the client only through send_draft, after the creator has seen it and said yes. The invoice number is given only when it is sent.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "brief": {
            "description": "Notes for the creator's own record",
            "maxLength": 1200,
            "type": "string"
          },
          "client": {
            "additionalProperties": false,
            "description": "Who the quote or invoice is for",
            "properties": {
              "email": {
                "description": "Where the link goes (needed unless send_by is sms)",
                "format": "email",
                "maxLength": 160,
                "type": "string"
              },
              "name": {
                "maxLength": 80,
                "type": "string"
              },
              "phone": {
                "description": "For send_by sms or both",
                "maxLength": 24,
                "type": "string"
              },
              "phone_country": {
                "description": "Two-letter country of the phone, like GH",
                "pattern": "^[A-Za-z]{2}$",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "currency": {
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "GHS",
              "NGN",
              "KES",
              "ZAR",
              "XOF",
              "INR",
              "BRL"
            ],
            "type": "string"
          },
          "deposit": {
            "additionalProperties": false,
            "description": "A custom deposit then the rest: a whole percent 1 to 99, or an amount",
            "properties": {
              "amount": {
                "description": "In major units, as a string, like \"241.62\"",
                "pattern": "^[0-9]+(\\.[0-9]+)?$",
                "type": "string"
              },
              "percent": {
                "maximum": 99,
                "minimum": 1,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lines": {
            "description": "The priced parts. The total is always their sum.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "description": {
                  "maxLength": 120,
                  "type": "string"
                },
                "from": {
                  "description": "A base price that may rise; changes no maths",
                  "type": "boolean"
                },
                "note": {
                  "description": "A short line under it",
                  "maxLength": 160,
                  "type": "string"
                },
                "quantity": {
                  "default": 1,
                  "maximum": 9999,
                  "minimum": 1,
                  "type": "integer"
                },
                "unit_price": {
                  "description": "In major units, as a string, like \"241.62\"",
                  "pattern": "^[0-9]+(\\.[0-9]+)?$",
                  "type": "string"
                }
              },
              "required": [
                "description",
                "unit_price"
              ],
              "type": "object"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          },
          "send_by": {
            "description": "How the client gets it once sent. Default email. self: nothing goes to the client; the creator downloads the PDF from Piku and sends it themselves, so no email is needed.",
            "enum": [
              "email",
              "sms",
              "both",
              "self"
            ],
            "type": "string"
          },
          "split": {
            "description": "How a one-off invoice is paid. Default in_full. For a deposit of your own, use deposit instead.",
            "enum": [
              "in_full",
              "50_50",
              "30_70"
            ],
            "type": "string"
          },
          "title": {
            "maxLength": 120,
            "type": "string"
          }
        },
        "required": [
          "client",
          "title",
          "currency",
          "lines"
        ],
        "type": "object"
      },
      "name": "create_invoice"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). Prepare a quote to one of the creator's clients as a Draft: Lines, up to three billing options (one_off, monthly, quarterly, annual), payment terms and split. client.email is where the link goes: without it (and send_by email or both) the tool answers needs_client_email. send_by self emails nothing. Nothing is sent and no number is used: a Draft goes to the client only through send_draft, after the creator has seen it and said yes. Returns the draft_id, every Line, each option's invoice total and a link to see it in Piku.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "client": {
            "additionalProperties": false,
            "description": "Who the quote or invoice is for",
            "properties": {
              "email": {
                "description": "Where the link goes (needed unless send_by is sms)",
                "format": "email",
                "maxLength": 160,
                "type": "string"
              },
              "name": {
                "maxLength": 80,
                "type": "string"
              },
              "phone": {
                "description": "For send_by sms or both",
                "maxLength": 24,
                "type": "string"
              },
              "phone_country": {
                "description": "Two-letter country of the phone, like GH",
                "pattern": "^[A-Za-z]{2}$",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "currency": {
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "GHS",
              "NGN",
              "KES",
              "ZAR",
              "XOF",
              "INR",
              "BRL"
            ],
            "type": "string"
          },
          "deposit": {
            "additionalProperties": false,
            "description": "A custom deposit then the rest: a whole percent 1 to 99, or an amount",
            "properties": {
              "amount": {
                "description": "In major units, as a string, like \"241.62\"",
                "pattern": "^[0-9]+(\\.[0-9]+)?$",
                "type": "string"
              },
              "percent": {
                "maximum": 99,
                "minimum": 1,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "due_days": {
            "description": "Days after issue each invoice is due. Default 14.",
            "enum": [
              0,
              7,
              14,
              30
            ],
            "type": "integer"
          },
          "lines": {
            "description": "The priced parts. The total is always their sum.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "description": {
                  "maxLength": 120,
                  "type": "string"
                },
                "from": {
                  "description": "A base price that may rise; changes no maths",
                  "type": "boolean"
                },
                "note": {
                  "description": "A short line under it",
                  "maxLength": 160,
                  "type": "string"
                },
                "quantity": {
                  "default": 1,
                  "maximum": 9999,
                  "minimum": 1,
                  "type": "integer"
                },
                "unit_price": {
                  "description": "In major units, as a string, like \"241.62\"",
                  "pattern": "^[0-9]+(\\.[0-9]+)?$",
                  "type": "string"
                }
              },
              "required": [
                "description",
                "unit_price"
              ],
              "type": "object"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          },
          "lines_per": {
            "description": "What each Line's price covers when an option repeats. Default quarter. Monthly needs month.",
            "enum": [
              "month",
              "quarter"
            ],
            "type": "string"
          },
          "options": {
            "description": "Default one_off",
            "items": {
              "enum": [
                "one_off",
                "monthly",
                "quarterly",
                "annual"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          },
          "send_by": {
            "description": "How the client gets it once sent. Default email. self: nothing goes to the client; the creator downloads the PDF from Piku and sends it themselves, so no email is needed.",
            "enum": [
              "email",
              "sms",
              "both",
              "self"
            ],
            "type": "string"
          },
          "split": {
            "description": "How a one-off invoice is paid. Default in_full. For a deposit of your own, use deposit instead.",
            "enum": [
              "in_full",
              "50_50",
              "30_70"
            ],
            "type": "string"
          },
          "title": {
            "description": "What the quote is for",
            "maxLength": 120,
            "type": "string"
          }
        },
        "required": [
          "client",
          "title",
          "currency",
          "lines"
        ],
        "type": "object"
      },
      "name": "create_quote"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). Propose a design for the creator's page as a Page draft: any of the look (theme and buttons), bio, link titles, the order of links, widgets, sections and Rates, and new links or widgets from addresses the creator gave you. Every field is optional; give only what changes. Nothing on the live page changes: the creator previews the Page draft and applies it, or parts of it, in the page builder. A new design replaces the open one. Returns the draft_id, the changes by part (Look, Order, Text, New links) and a preview_url.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "add": {
            "description": "New links or widgets, only from addresses the creator gave you. Links must be https.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "size": {
                  "enum": [
                    "compact",
                    "full",
                    "card"
                  ],
                  "type": "string"
                },
                "text": {
                  "description": "WhatsApp only: the first message",
                  "maxLength": 300,
                  "type": "string"
                },
                "title": {
                  "maxLength": 60,
                  "type": "string"
                },
                "type": {
                  "default": "link",
                  "enum": [
                    "link",
                    "youtube",
                    "tiktok",
                    "instagram",
                    "spotify",
                    "apple-music",
                    "whatsapp"
                  ],
                  "type": "string"
                },
                "url": {
                  "description": "For type link: an https address",
                  "type": "string"
                },
                "value": {
                  "description": "For a widget: its https link, or the WhatsApp number with country code",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "maxItems": 10,
            "type": "array"
          },
          "bio": {
            "description": "Plain text",
            "maxLength": 280,
            "minLength": 1,
            "type": "string"
          },
          "links_order": {
            "description": "Link and widget ids in the new order; new:0 is the first item of add. Ones left out follow in their order.",
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "type": "array",
            "uniqueItems": true
          },
          "look": {
            "additionalProperties": false,
            "description": "The page's theme and buttons. Fonts and custom backgrounds are not available.",
            "properties": {
              "button_align": {
                "description": "Where titles sit on the buttons",
                "enum": [
                  "left",
                  "center"
                ],
                "type": "string"
              },
              "button_colour": {
                "description": "Like #4A2073. get_page lists the named ones",
                "pattern": "^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
                "type": "string"
              },
              "button_shape": {
                "enum": [
                  "rounded",
                  "square",
                  "pill"
                ],
                "type": "string"
              },
              "theme": {
                "description": "Background, surfaces, text and accent together. get_page lists them",
                "enum": [
                  "mist",
                  "plum",
                  "ink",
                  "sand"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "rates_order": {
            "description": "Rate ids in the new order. Ones left out follow.",
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "type": "array",
            "uniqueItems": true
          },
          "sections": {
            "description": "The tabs shown, in order. The first opens first.",
            "items": {
              "enum": [
                "links",
                "rates",
                "media-kit"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          },
          "titles": {
            "description": "New titles for links or widgets, by id from get_page",
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "id",
                "title"
              ],
              "type": "object"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "design_page"
    },
    {
      "description": "Where a request stands: awaiting_confirmation, expired, requested, quoted, accepted or declined. Pass the request_id from submit_request as deal_id. When quoted, the quote total, currency and the brand's approval link are included.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "deal_id": {
            "description": "The request_id from submit_request",
            "type": "string"
          }
        },
        "required": [
          "deal_id"
        ],
        "type": "object"
      },
      "name": "get_deal"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). One invoice by its number, like INV-0042: its Lines, amount, status, due date, period, receipt and pay link.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "invoice": {
            "description": "The number, like INV-0042",
            "type": "string"
          }
        },
        "required": [
          "invoice"
        ],
        "type": "object"
      },
      "name": "get_invoice"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). The connected creator's public page as data: name, bio, the button look (colour, shape, alignment), the sections (tabs) in order, links and widgets with their ids, Rates in order, the choices the page builder offers, and any open Page draft.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_page"
    },
    {
      "description": "A creator's Rate Card and media kit: every Rate with its stable id, price as the creator shows it (visibility full, from_price or request_only), what it includes, and the self-reported audience.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "handle": {
            "description": "The creator's Piku handle, like nia",
            "type": "string"
          }
        },
        "required": [
          "handle"
        ],
        "type": "object"
      },
      "name": "get_rate_card"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). The connected creator's Deals, newest first, and their unsent Drafts. Each has its client, title, stage, amount and id. Filter by client name or stage.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "client": {
            "description": "Part of the client's name",
            "maxLength": 80,
            "type": "string"
          },
          "limit": {
            "default": 20,
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "stage": {
            "enum": [
              "requested",
              "quoted",
              "accepted",
              "invoiced",
              "paid",
              "declined",
              "cancelled",
              "draft"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_deals"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). The connected creator's invoices, newest first: number, client, amount, status (due, overdue, paid, void) and due date. Invoices the creator archived are left out; get_invoice still reads one by its number.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "client": {
            "maxLength": 80,
            "type": "string"
          },
          "limit": {
            "default": 20,
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "status": {
            "enum": [
              "due",
              "overdue",
              "paid",
              "void"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_invoices"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). The connected creator's recent Page drafts: status (draft, applied, discarded, replaced, expired), the parts applied, and the preview link.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 10,
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_page_drafts"
    },
    {
      "description": "Find creators with a live Piku page by niche words (matched against the niches they chose, then their bio and Rates), location (their city and country, then their bio), platform and starting price. Prices are starting prices in the creator's currency; max_from_price is compared after converting currencies. Creators who share prices on request are left out when max_from_price is set. Results are paged: pass next_cursor back as cursor.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "type": "string"
          },
          "location": {
            "description": "A city, a country name or code, or both, like Accra, Ghana",
            "maxLength": 60,
            "type": "string"
          },
          "max_from_price": {
            "additionalProperties": false,
            "properties": {
              "amount": {
                "exclusiveMinimum": 0,
                "type": "number"
              },
              "currency": {
                "pattern": "^[A-Za-z]{3}$",
                "type": "string"
              }
            },
            "required": [
              "amount",
              "currency"
            ],
            "type": "object"
          },
          "niche": {
            "description": "Words like skincare, travel, code reviews",
            "maxLength": 60,
            "type": "string"
          },
          "platform": {
            "description": "Platform of the Rate",
            "enum": [
              "instagram",
              "youtube",
              "tiktok",
              "other"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_creators"
    },
    {
      "description": "Creators only, on their own Piku account (asks them to connect). Send one Draft to its client: a quote goes out with its accept link; an invoice is numbered and goes out with its pay link (or, with send_by self, is marked sent for the creator to send). For use only after the creator has seen this Draft and said yes to sending it. Sending the same Draft again sends nothing.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "description": "The draft_id create_quote or create_invoice returned",
            "type": "string"
          }
        },
        "required": [
          "draft_id"
        ],
        "type": "object"
      },
      "name": "send_draft"
    },
    {
      "description": "Send a brand's request on one Rate of a creator. Piku emails the brand a confirm link; the request reaches the creator's Deals only after the brand confirms, within 48 hours. Needs the creator's handle, the Rate id, the brand's name and contact email, and a short brief, as the user gave them. Returns a request_id.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "brand": {
            "additionalProperties": false,
            "properties": {
              "email": {
                "format": "email",
                "maxLength": 160,
                "type": "string"
              },
              "name": {
                "maxLength": 80,
                "type": "string"
              }
            },
            "required": [
              "name",
              "email"
            ],
            "type": "object"
          },
          "brief": {
            "description": "What the brand needs, in a few lines",
            "maxLength": 1200,
            "minLength": 10,
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "rate_id": {
            "description": "The Rate's id from get_rate_card, like ig-reel",
            "type": "string"
          }
        },
        "required": [
          "handle",
          "rate_id",
          "brand",
          "brief"
        ],
        "type": "object"
      },
      "name": "submit_request"
    }
  ]
}

What the leaf hashes

{"body":"2d9c413fb03c9bef49ff49b9143244e38f8a777180ec032d379ab1c5f135c25a","id":2115383,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793617244802766,"prev":1474304,"subject":"062e308f-2c24-4a6a-86ff-d44bb2a552cb","subject_kind":"endpoint"}

Proof

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

  1. 0xd6aafa082cdb9931cf9d36597680ba3d482bd4764f3541ae47bcd82cb358be90
  2. 0x2454f2637cc89b8f97de93ac8f81588c1c7f999a5f9d7bd36412e79ccf4d6a2f
  3. 0x1e2226b0a58f7072cb5b699ed93a8e8c32628ef3910012e7ab48c0d9e8203b2c
  4. 0x88d4ae785f56991ce6e2a499c257bf9e33cb506cdf0afe78befd11e1287a5200
  5. 0x4f14b0b2caa8f9ca4ab270e0ce552fdd13a6fcd9994425a2df85c11f68bdf621
  6. 0x5b81c9f6ec4fe551dff9c5888d4fdde8f5167801fb8df2f636d87d64ec25a802
  7. 0xf596a6da71e11df1b9aa73c10f6fbfc604a5bf6b8407557f3b0e21b2fbdacfc2
  8. 0x57de7c673de3c75da024b38d275c7031baea4fbb2beab7702adbe4cfae58676a
  9. 0x76bf0977a860e896cba79f13f24a28671a60eeea70960a21e96ebd0f2bab59c5
  10. 0x22d3e9aa8228ce785813e5b081d3cdf6db488ae3e4fdc9ef1aeab465ad3beaa4
  11. 0x9c65c76829eca17a0af68f0dc695c440cc0bffeb2a468afa53dc6263619f7f01
  12. 0x7187889e0cb6879609e91cd98c7d6289b291639a739c761b50ed349bfcd02009
  13. 0x0a0b06366ac223b57a065057db885c66f1a3225264321b3732529557f57cf2a7
  14. 0xc94ac971f2e2765086823b6227f70a7d3fdcf267884d07ae0a3f85c1caf941d2
  15. 0xa9134f4ed9cec34e13ba243b6a51db73753dbbb3b48c63bd82b22694813d2b02
  16. 0x7ddefa7d79e7640c3fed21ee4472689415182c41a0258ab04a81d60495f4c40a
  17. 0xdb8bd933619a267f9790faac9839143d202be46af284371cc369cdf683f897ba
  18. 0x98cbbf2c68ab4c0b4db782aeb88bea1f30b02178cf8b5d3d24a931d19492ea6d
  19. 0x252cce55f1a3d5391c16f82d7f62494429a5f69b03486d4cfcfb7b2c96d6c884
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON