addrbookFor publishers
← The evidence ledger

Evidence row 578880

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 767555ae-f66f-43d6-989f-2199276b1eb9
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
629540f1797474a96ed8ba88bf7ff64ea2fb1e5c2d2f57afed9c2a7d09b9dd4e
Leaf
0x56d45af9c92c481b99c75f992f3c54174d3ff9e708d2011229b405926c9d2dd4

What was observed

{
  "count": 10,
  "tools": [
    {
      "description": "Create and launch a new campaign for the calling business. Returns the campaign id, name, and dashboard URL. The campaign goes live immediately — no separate publish step.",
      "inputSchema": {
        "properties": {
          "actions": {
            "description": "Action IDs the campaign accepts (e.g. ['ig_st'] for an Instagram Story Tag).",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "businessId": {
            "description": "The business owning this campaign. Must match the API key's business.",
            "type": "string"
          },
          "description": {
            "description": "Optional internal description",
            "type": "string"
          },
          "discountType": {
            "description": "Discount denomination: 'pct' for percentage, 'dol' for dollars off.",
            "enum": [
              "pct",
              "dol"
            ],
            "type": "string"
          },
          "discountValue": {
            "description": "Discount amount. Capped at 100 for pct, 10000 for dol.",
            "minimum": 0.01,
            "type": "number"
          },
          "expiresInDays": {
            "description": "Days until the campaign auto-expires. Default 60.",
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          },
          "maxCompletions": {
            "description": "Optional cap on total completions. Null = no cap.",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "description": "Customer-facing campaign name",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "businessId",
          "name",
          "actions",
          "discountValue",
          "discountType"
        ],
        "type": "object"
      },
      "name": "createCampaign"
    },
    {
      "description": "Get industry benchmarks (engagement rate, conversion rate, etc.) for a business type.",
      "inputSchema": {
        "properties": {
          "businessType": {
            "description": "Industry name or slug (e.g. 'restaurants', 'coffee-shops'). Omit for the full catalog.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "getBenchmarks"
    },
    {
      "description": "Get summary stats for a single campaign — total submissions, approved count, conversion rate, perks issued, and time-to-first-submission. Useful for an agent reporting back to its user.",
      "inputSchema": {
        "properties": {
          "campaignId": {
            "description": "Campaign to fetch stats for.",
            "type": "string"
          }
        },
        "required": [
          "campaignId"
        ],
        "type": "object"
      },
      "name": "getCampaignStats"
    },
    {
      "description": "Get the market-rate pricing for a marketing action. Returns USD value and recommended perk type/value.",
      "inputSchema": {
        "properties": {
          "actionId": {
            "description": "Action ID (e.g. ig_post, google_review)",
            "type": "string"
          },
          "businessType": {
            "description": "Business type modifier (default: general)",
            "type": "string"
          },
          "platformId": {
            "description": "Platform ID (e.g. instagram, google)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "getPricing"
    },
    {
      "description": "List the 125 marketing actions available on Social Perks. Filterable by platform, type, and effort.",
      "inputSchema": {
        "properties": {
          "maxEffort": {
            "maximum": 5,
            "minimum": 0,
            "type": "integer"
          },
          "page": {
            "default": 1,
            "type": "integer"
          },
          "perPage": {
            "default": 50,
            "type": "integer"
          },
          "platformId": {
            "type": "string"
          },
          "type": {
            "enum": [
              "content",
              "review",
              "engage",
              "share",
              "referral"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listActions"
    },
    {
      "description": "List campaigns. Requires auth — returns the caller's campaigns.",
      "inputSchema": {
        "properties": {
          "status": {
            "enum": [
              "draft",
              "active",
              "paused",
              "completed"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listCampaigns"
    },
    {
      "description": "List submissions for a business or campaign, filterable by state (pending/approved/rejected). Returns paginated results.",
      "inputSchema": {
        "properties": {
          "businessId": {
            "type": "string"
          },
          "campaignId": {
            "type": "string"
          },
          "page": {
            "default": 1,
            "minimum": 1,
            "type": "integer"
          },
          "perPage": {
            "default": 25,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "state": {
            "enum": [
              "pending",
              "approved",
              "rejected"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "listSubmissions"
    },
    {
      "description": "Approve or reject a submission. Approving releases the perk; rejecting requires a reason. Use this when the business chooses manual review over auto-verification.",
      "inputSchema": {
        "properties": {
          "decision": {
            "description": "Approve releases the perk. Reject explains why the proof was insufficient.",
            "enum": [
              "approve",
              "reject"
            ],
            "type": "string"
          },
          "reason": {
            "description": "Required when decision='reject'. 1-500 chars.",
            "maxLength": 500,
            "type": "string"
          },
          "submissionId": {
            "description": "Submission id from a prior submitProof call.",
            "type": "string"
          }
        },
        "required": [
          "submissionId",
          "decision"
        ],
        "type": "object"
      },
      "name": "reviewSubmission"
    },
    {
      "description": "Search influencers by platform and follower count.",
      "inputSchema": {
        "properties": {
          "minFollowers": {
            "type": "integer"
          },
          "platform": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "searchInfluencers"
    },
    {
      "description": "Submit proof of completion for a campaign action — a public URL to a post, a screenshot, a video, or platform-verified data. The submission enters a review queue (or auto-approves depending on the campaign's verification mode).",
      "inputSchema": {
        "properties": {
          "actionId": {
            "description": "Specific action being completed (must be allowed by the campaign).",
            "type": "string"
          },
          "campaignId": {
            "description": "Campaign the submission applies to.",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "Optional bag of context (poster handle, post timestamp, etc.).",
            "type": "object"
          },
          "proofType": {
            "description": "How the proof was captured. 'url' triggers automated verification.",
            "enum": [
              "screenshot",
              "url",
              "video",
              "api_verified"
            ],
            "type": "string"
          },
          "proofUrl": {
            "description": "Public URL of the proof. For url-type submissions, the platform verifier will fetch this.",
            "maxLength": 2048,
            "type": "string"
          }
        },
        "required": [
          "campaignId",
          "actionId",
          "proofUrl",
          "proofType"
        ],
        "type": "object"
      },
      "name": "submitProof"
    }
  ]
}

What the leaf hashes

{"body":"629540f1797474a96ed8ba88bf7ff64ea2fb1e5c2d2f57afed9c2a7d09b9dd4e","id":578880,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793143192004587,"prev":null,"subject":"767555ae-f66f-43d6-989f-2199276b1eb9","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. 0x56d45c46b75e3f97b40e5358da5f263938df8b66000670966a6e1fe651dcc896
  2. 0xb5505ffee67d925f0c59142d557db2b4239dbe3111d4aac3f5415e4c0b5c00cc
  3. 0xd1f0b8ca537b590e36203ce7b16f3d49732c6ff48cc831557cee10e5f54a8698
  4. 0x5e5b97afaea7f0e0a509cbd47ec3a13764b6cd13aaeb0e582fa9dd8495f3aae5
  5. 0x093daefcb0b7c3ff04a520377b3d9d3c407ac81a23c0e621485211b001cf4719
  6. 0x88b033656af0c13c624d80b9346423f7c99fd3c0a8e8ffea7c9c0c39071457ab
  7. 0xb1579022cc3199239f992cac9d1b7110e33ef3ece8e3b4a02c71eaf19aca9f59
  8. 0x1e585b04f28a270eeee817bdefe92539413b87776a2e8dd958914eb739337131
  9. 0xd1430af3e32f3433a8e8200284f7c09ebc392e1cb7e4aa4a2c16838fd51086fa
  10. 0xc69bdb44e5c6b8cf371784b0313363ac72c0c8b7cf2a10203966cbe3857fc7a6
  11. 0xaec8530a2e156f659d0929b3462a514a0cf7d2e6669110bb34b6ef56abdae9fd
  12. 0xe06cb1b692af263d62f5739bc4ad709ffe5a2576ef5a59a1610d50c03c7b9584
  13. 0x906b5f0e8ef1fe7894886d84f460bb3239d5f14b14ad4adff27c7dcea6265169
  14. 0x674bc1173d39130be4d15bbfc7327f8a8af87eb251e54c8d4409c7e840b9e538
  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