Personal Agent Protocol report
x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev
x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev publishes a poppy.json, and no P0 or P1 check fails.- Verdict
- Working
- Profile
- pap-0.3@2026-11-09PAP Draft 0.3 (published 2026-11-04; may change; Draft 0.4 graded as a preview)
- Last run
- Tier 1 probed
- Not probed
Tier 0: the public files
Plain reads of poppy.json and the documents it points to. None of these requests carries a credential.8 pass, 1 fail, 28 N/A- T0-01Document existsserved at https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/.well-known/poppy.json
- T0-02Redirects safeno redirects
- T0-03Valid JSON objecta JSON object
- T0-04Supported protocol_versionprotocol_version 0.1 (advisory: the latest published draft is 0.3, and an agent that supports only 0.3 will not use this file, so move to 0.3)
- T0-05Organization names its own hostorganization.domain x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev (graded as Draft 0.1: the requested host, ignoring a leading www.)
- T0-06Has an interfaceinterfaces: web
- T0-07Issuer identifiedno interface needs sign-in
- T0-08All URLs HTTPSevery URL is https
- T0-SIBPublished on the requested hostpublished on x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev
- T0-27Other version documents consistentsupported_versions is a Draft 0.4 field; this file declares 0.1
- T0-09Issuer metadata reachablepoppy.json names no auth.issuer
- T0-10Issuer matchpoppy.json names no auth.issuer
- T0-11Domain bindingpoppy.json names no auth.issuer
- T0-12Required endpointspoppy.json names no auth.issuer
- T0-21Cache headerspoppy.json names no auth.issuer
- T0-22Signing algorithms validpoppy.json names no auth.issuer
- T0-23Same sign-in on every domainpoppy.json names no auth.issuer
- ADV-PKCENo plain PKCEpoppy.json names no auth.issuer
- T0-13Scopes definedno sign-in type or custom scope
- T0-14Mediated sign-in well formedno mediated sign-in
- T0-19Extensions named correctlyno extensions
- T0-20Extensions advertised fullyoperations extension not advertised
- T0-24Switched off consistentlya Draft 0.3 field; this file declares 0.1
- T0-26Offered scopes describeda Draft 0.3 rule; this file declares 0.1
- T0-28Browser sign-in scope listeda Draft 0.4 rule; this file declares 0.1
- T0-15Conversation entriesno agent block
- T0-16API entriesno apis
- T0-17OpenAPI parsesno openapi entries
- T0-18MCP resource metadatano mcp entries
- T0-25Excluded tasks documenta Draft 0.3 field; this file declares 0.1
- X-01Same MCP server everywherepoppy.json lists no MCP server
- X-02Same organizationthe ARD catalog host is "P0 Agent Economy Index", poppy.json names "P0"
- X-04Domains coveredpoppy_domains lists no other domain
- X-07One issuerpoppy.json names no issuer
- X-08One metadata documentno other authorization server metadata
- X-10Shared token endpoint lists both protocols' grantsno other protocol shares the PAP issuer's token endpoint
- X-12Consistent 401sno recorded 401 challenge from a PAP MCP server
Tier 1: junk requests to the listed endpoints
Requests with no valid credential, which a correct site refuses. They run only when the scan asks for them, at most once per domain every 6 hours.No Tier 1 probe result from the last 30 days.11 N/A- T1-01Token endpoint rejects a junk grantpoppy.json names no issuer
- T1-02Error bodies leak nothingno probe answered
- T1-03Conversation endpoint refuses a request with no credentialsno poppy conversation endpoint
- T1-05MCP server challenges unauthenticated initializeno MCP server listed
- T1-15Browser join page is safe to loadno web.browser_session_endpoint
- T1-07Browser endpoint rejects a junk joinno web.browser_session_endpoint
- T1-16Browser join authorization requires a Sessionno web.browser_session_endpoint
- T1-09Operations endpoint requires a tokenoperations extension not advertised
- T1-13Feedback endpoint requires a tokenno feedback.endpoint
- T1-14Protocol endpoints answer without a redirecta Draft 0.2 rule; this file declares 0.1 (see ADV-REDIRECT)
- ADV-REDIRECTEndpoint answers without a redirectno probe sent
Tier 2a: coming soon
Valid requests with a real client, once Ora publishes its own client metadata and signs real requests. Not measured yet. These planned checks were written for PAP Draft 0.2, and their sections are its numbering; they will be rewritten for Draft 0.3 before any is built.10 not measuredShow the 10 planned checks
- T2-M1Call each read-only OpenAPI GET with no token, then with a valid signed-out token
- T2-M5Load the consent page for Ora's real client_id from a valid S256 request and inspect headers; never sign in
- T2-01Start a Session for U1
- T2-02Token lifetime
- T2-05Renew with session_id
- T2-14Nonce challenge
- T2-16Token request with no DPoP proof for an MCP server (resource = MCP url)
- T2-18Token accepted without cookies
- T2-19Valid browser assertion, form POST
- T2-25Cookie scope
Tier 2b: requires opt-in
Checks that run only for a verified owner who opts in. Not measured yet. These planned checks were written for PAP Draft 0.2, and their sections are its numbering; they will be rewritten for Draft 0.3 before any is built.36 not measuredShow the 36 planned checks
- T2-M2Send a valid Session Token in ?access_token= instead of the header
- T2-M3Send a valid browser assertion in the URL instead of the form body
- T2-M4Start Direct Sign-In with code_challenge_method=plain and Ora's real client_id; stop at the authorization endpoint
- T1-12Mediated endpoint, only if the company opts in: two bad-credential attempts
- T2-03Replay the same assertion jti
- T2-04Assertion with aud as an array, or as an endpoint URL instead of auth.issuer
- T2-06Renew U1's Session with a U2 assertion
- T2-07Assertion signed with a key not in Ora's JWKS
- T2-08alg: none or HS256 assertion
- T2-09Token request with a reused proof jti
- T2-10Proof with wrong htu or htm
- T2-11Proof with wrong ath
- T2-12Proof signed by a different key than the token's binding
- T2-13Stale iat (beyond ~1 min)
- T2-15Token sent as Authorization: Bearer to a non-MCP endpoint
- T2-17That Bearer token at another MCP server or an OpenAPI endpoint
- T2-20Replay the same browser assertion
- T2-21exp more than 60 s after iat
- T2-22return_to on a foreign domain
- T2-23Session assertion (wrong typ) at the browser endpoint
- T2-24Browser assertion at the token endpoint
- T2-26Start with a general question
- T2-27Retry the same message id and content
- T2-28Same id, different content
- T2-29Read events with and without wait
- T2-30POST …/messages?wait=10
- T2-31Junk cursor
- T2-32U2 reads U1's conversation
- T2-33Stream with Accept: text/event-stream
- T2-34Ask about the account while signed out
- T2-35Message with only context
- T2-36Close, then send a message
- T2-37Handoff (opt-in only; may page staff)
- T2-38Ora client metadata without extensions.operations, trigger a proposing endpoint
- T2-39U2 reads U1's signed-out operation
- T2-40Confirm an old revision (if revisions can be triggered)
Tier 3: needs a test account and a person
Checks that need a test account from the company and a person at the keyboard. Ora does not run these on its own. These planned checks were written for PAP Draft 0.2, and their sections are its numbering; they will be rewritten for Draft 0.3 before any is built.17 not measuredShow the 17 planned checks
- T3-01Direct sign-in
- T3-02Redirect URI not in Ora's redirect_uris
- T3-03User declines
- T3-04Device sign-in
- T3-05Mediated sign-in (if offered)
- T3-06Partial scope approval
- T3-07Request an unlisted scope
- T3-08Scope enforcement across channels
- T3-09Account Token from another client_id or at an API
- T3-10Account Token with narrower and wider scope
- T3-11Sign a Session into account B after account A
- T3-12Revoke the Account Token
- T3-13Signed-out token on an account-using conversation
- T3-14Direct Conversation
- T3-15Operation end to end (sandbox action)
- T3-16standing_permission on a user_approval_required operation
- T3-17Account settings