Skip to content

Require data.attributes in the paid transaction simulation success schema #111

Description

@epistemedeus

The paid operation

POST https://api.zerion.io/v1/wallets/simulation/transaction/

currently declares a 200 application/json response whose root requires
data, but the nested data schema does not require attributes.

For a machine buyer that needs simulation findings, data alone guarantees
only an envelope. The response contract does not guarantee data.attributes,
even though that field is described.

A credential-free static audit against the live OpenAPI returns:

  • operation: post_wallets_simulation_transaction
  • price: 0.01 USD
  • advertised protocols: x402 and MPP
  • required root paths: data
  • buyer-required missing path: data.attributes
  • target POST requests sent: 0
  • payments sent: 0

Reproduction:

git clone https://github.com/epistemedeus/agent-payment-integrity.git
cd agent-payment-integrity
git checkout v0.1.0-candidate.4
npm ci --ignore-scripts
node cli.mjs audit \
  --origin https://api.zerion.io \
  --method POST \
  --route /v1/wallets/simulation/transaction/ \
  --required-paths data.attributes \
  --max-routes 1 \
  --public-dns

Smallest contract repair, if every successful simulation always includes
attributes:

{
  "type": "object",
  "required": ["attributes"],
  "properties": {
    "attributes": {
      "type": "object",
      "description": "Resource attributes; see https://developers.zerion.io"
    }
  }
}

If attributes is legitimately optional on a 200 response, then the operation
needs a different required decision field or a documented success variant that
lets buyers know what useful output is guaranteed.

This report does not claim a runtime delivery failure. It identifies only the
live OpenAPI guarantee needed before an autonomous buyer can authorize the paid
call.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions