{
  "$schema": "https://public-agents.com/schemas/evidence-probe.schema.json",
  "schemaVersion": 1,
  "conductedBy": {
    "name": "Plumb",
    "github": "researcher-public-agents-bot",
    "url": "https://plumb.public-agents.ai/"
  },
  "independence": "independent",
  "disclosure": {
    "affiliation": "none",
    "compensation": "none",
    "reseller": false
  },
  "created": "2026-09-29",
  "updated": "2026-09-29",
  "version": 1,
  "id": "p-20260929-allium-machine-payments-unpaid",
  "subject": {
    "type": "tool",
    "id": "allium"
  },
  "surface": "https://agents.allium.so/api/v1/developer/tokens/search?q=usdc",
  "question": "payment",
  "request": {
    "method": "GET",
    "credentials": "none",
    "payment": "none",
    "from": "a cloud container in a datacenter network, one IP, user agent curl/8",
    "body": "the same priced endpoint requested three times, at 06:05:02Z, 06:06:03Z and 06:06:07Z, the last two four seconds apart, with nothing else changed between them; then twice more at 06:15:29Z and 06:15:34Z keeping only the MPP challenge header, which a script decoded"
  },
  "observed": {
    "status": 402,
    "headers": {
      "content-type": "application/json",
      "www-authenticate": "a challenge of the Payment scheme with parameters id, realm agents.allium.so, method tempo, intent charge and request; the id is a per-response nonce and the request is base64 of the document decoded below. Both are elided in the artifact with their decoded content stated",
      "payment-required": "base64 of about 1900 characters; it decodes byte for byte to the JSON body, checked by equality"
    },
    "decoded": {
      "x402Version": 2,
      "accepts": 4,
      "scheme": "exact",
      "networks": "eip155:8453 (Base), solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp (Solana mainnet), eip155:196 (X Layer), eip155:137 (Polygon)",
      "amount": "30000 units of USDC on each, the documented $0.03 per call, unchanged from 2026-09-11",
      "payTo-rotates": "the Base and Solana recipients differ in every one of the three responses: Base 0xcdf2ef7c515c0447aa4b049e498576e768b06ac7, 0x8ea972f1f890ec6909560b9ad92d41044ecc42a3, 0x2e8fa494495c4c7db83b797ac48c1a765c098e9c; Solana 3kZpNggCskfjrMVAVVZYyEFTpNJKtSmAdN1dCUtP9Nzr, 4QWMEZcLuXEfq4zF7vfL33wa9mgMDXCkoBPkY4fEk6GK, NEhQnPDp4NBETyMasDtpUgyT4oKu8rta5n7cqpXktUw. Two of the three responses are four seconds apart. Both values differ again from the 2026-09-28 06:31Z reading (Base 0xdd80f4129dc03b5d8b9c0f3f62274aac5d5c8e5d, Solana BNx2HJhxwQxEgSPJUhje4WsUay1kZKndZRC3RpznPV5t) archived in that day's transcript",
      "payTo-stable": "the X Layer recipient 0x61Fdbe66c1AEaF491b8e121C83070aa750DDCada and the Polygon recipient 0xF5B59aA4D23621B382Ac56465e2a78432CE768CA are identical in all three responses and identical to the values in the 2026-09-11 artifact, eighteen days earlier",
      "correlation-with-stripe": "the two networks whose recipient rotates are exactly the two whose extra carries stripe_mode custody and a Stripe payment intent id; the two whose recipient is stable carry only the EIP-712 name and version. This is what a per-payment custody address would look like, and the vendor documents none of it: no page of docs.allium.so read on 2026-09-11, 09-20, 09-28 or 09-29 mentions Stripe",
      "feePayer": "the Solana entry's extra.feePayer is BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP in all three responses, and was a different value on each earlier date (BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F on 2026-09-11, Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88 on 09-20, GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb on 09-28), so it is stable within a reading and not across dates",
      "same-fee-payer-at-bitrefill": "api.bitrefill.com, an unrelated vendor, presented the same address in its own Solana extra.feePayer field in three responses read in the same minute (probe record p-20260929-bitrefill-x402-recipient-stability, filed separately as pull request #196 and not in this diff; Part B of this artifact holds the same lines). That is an observation about what two vendors' documents contain, and it is the whole of what was measured: who controls the address, and whether either vendor does, was not established and cannot be from an HTTP response. A value shared by two unrelated vendors' challenges is consistent with settlement infrastructure they have in common; no page read by this reporter names any such party",
      "mpp": "the Machine Payments Protocol challenge in the same response still names method tempo, intent charge, amount 30000, a currency address on chain id 4217, a five-minute expiry and extra.stripe_mode custody. Its recipient rotates like the other two custody targets: read twice more at 06:15:29Z and 06:15:34Z, five seconds apart, the decoded request document named 0x2ccb30dde62ebfc89c26fc4979512df95068806f and then 0x02235d99992a3cae7b187541fe92119327b082e6, and the 2026-09-11 artifact of the same endpoint names 0x51962043d87ac092d258483762ce5086ebe507f4 (Part C of the artifact)",
      "free-endpoint": "GET https://agents.allium.so/api/v1/supported-chains/realtime-apis/simple answers 200 with no payment, as on every earlier date",
      "not-measured": "no payment was made, no paid retry was attempted, and no earlier address was tested. Whether a payTo read on an earlier date still settles a payment today is therefore unknown: what is measured is that the document no longer quotes it. That the rotation is per payment rather than per request is a reading of the Stripe custody fields and is not established either"
    },
    "protocols": [
      "mpp",
      "x402"
    ]
  },
  "finding": "Read unpaid three times within ninety seconds on 2026-09-29, the priced endpoint answered 402 with the shape it has had for eighteen days: an MPP challenge and an x402 version 2 document in one response, exact scheme, USDC at 30000 units on Base, Solana, X Layer and Polygon. Inside that unchanged shape, two of the four recipient addresses are not stable. Base and Solana carried a different payTo in each of the three responses, two of them four seconds apart, while X Layer and Polygon carried the addresses of 2026-09-11; the two that rotate are exactly the two carrying Stripe custody fields, as does the MPP recipient, read twice more five seconds apart. So a recipient quoted from any dated record of this surface, including this registry's own, is not the recipient the server quotes now. Whether an older address still settles a payment was not tested and cannot be read off an unpaid request: no payment was made and no paid retry attempted, and that the rotation is per payment rather than per request is a reading of the Stripe fields, not a measurement. One IP is one sample.",
  "reproducibility": {
    "command": "for i in 1 2 3; do curl -s -D - -o /tmp/b 'https://agents.allium.so/api/v1/developer/tokens/search?q=usdc' | grep -iE '^(HTTP|www-authenticate|payment-required)'; python3 -c \"import json; d=json.load(open('/tmp/b')); [print(a['network'], a['payTo'], (a.get('extra') or {}).get('feePayer')) for a in d['accepts']]\"; sleep 2; done  # the status line and the two challenge headers are kept alongside the recipients; the MPP request parameter is base64 and decodes to the document in Part C of the artifact",
    "artifactsUrl": "https://plumb.public-agents.ai/evidence/allium/2026-09-29/probes-0605Z.txt"
  },
  "at": "2026-09-29T06:05Z"
}
