← The evidence ledger
Evidence row 458237
Observed , by sync.x402_bazaar/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://api.aiskills402.com/v1/skills/oauth-redirect-flow-review/file
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 98aeb911f1fe87ddd6fa8d97dd6c55345da11461aedb81120e14837005121d13
- Leaf
- 0x3d8aade2e6cff2ebc32d35b0e1863bd5d8611a3368bb8b2cab42debd238705bf
What was observed
{
"endpoints": [
[
"x402",
"https://api.aiskills402.com/v1/skills/oauth-redirect-flow-review/file"
]
],
"name": "OAuth Redirect Flow Review",
"owner_address": "0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4",
"raw": {
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4",
"scheme": "exact"
}
],
"description": "OAuth Redirect Flow Review — Reviews ONE OAuth 2.0 or OpenID Connect sign-in flow written in code for the four mistakes that let an attacker steal a login or a token, and lists only those, one line each with a fixed code, the function, why it hurts and the fix - or exactly No findings. It catches a state value that is never compared or not tied to the user's session, a browser or mobile client that sends no PKCE challenge, a redirect address matched by prefix or substring, and an implicit flow …",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"type": "http"
},
"output": {
"example": {
"file": {
"content": "<the SKILL.md file>",
"encoding": "utf-8",
"name": "SKILL.md"
},
"name": "OAuth Redirect Flow Review",
"ok": true,
"receipt": {
"settled": true,
"tx": "0x<settlement transaction>"
},
"redownload": {
"token": "<64 hex chars>",
"url": "<api>/v1/purchases/<token>"
},
"sha256": "<sha256 of SKILL.md>",
"skill": "oauth-redirect-flow-review",
"version": "1.0.0"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"enum": [
"GET",
"HEAD"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"lastUpdated": "2026-10-27T08:01:45.863Z",
"quality": {
"lastCalledAt": "2026-10-27T08:01:45.863Z"
},
"resource": "https://api.aiskills402.com/v1/skills/oauth-redirect-flow-review/file",
"serviceName": "OAuth Redirect Flow Review",
"tags": [
"agent-skill",
"oauth-redirect-flow-review",
"oauth",
"oidc",
"pkce"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "OAuth Redirect Flow Review — Reviews ONE OAuth 2.0 or OpenID Connect sign-in flow written in code for the four mistakes that let an attacker steal a login or a token, and lists only those, one line each with a fixed code, the function, why it hurts and the fix - or exactly No findings. It catches a state value that is never compared or not tied to the user's session, a browser or mobile client that sends no PKCE challenge, a redirect address matched by prefix or substring, and an implicit flow …"
}What the leaf hashes
{"body":"98aeb911f1fe87ddd6fa8d97dd6c55345da11461aedb81120e14837005121d13","id":458237,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793100982214811,"prev":null,"subject":"x402_bazaar:https://api.aiskills402.com/v1/skills/oauth-redirect-flow-review/file","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0x3d8aa29da35c2048aecc5c54bfa3aaaf7decdf1c1896a44deeaf42b407ed10d6
- 0x29ed131da51a764a2a2d5b2ffdf24b86929146da2b6476edfe9356aab6ef2c19
- 0xeb60910101682e08cd7a75175b84c42cf2501f04e2dca919bad2e73ac265e989
- 0x6d86936f17a275f7d1cfde0ebdca3f8912bb7d0f7aca430e95214a968b087fc8
- 0x3ea6e181f95c0daebf3fa5a84c13223a3f31b70a61885ab0c65c155ffc9cec09
- 0x0d82524eda6acd6b7ffedccc4c66e1d4e460a5d4f745d0551cfa24515e5fc724
- 0xecc70e65e1c2d75168c537e0083230ffc5cec7652e26e2d05769044a79ea75bc
- 0x3edcf170e83b55c818899df25bc3be52d5dd9634f89eb270a050533a2a5a5588
- 0x9f5bad654534c0b4c485c712b1ea2bf5f2d4ca3287239129796f0febbf37b7ae
- 0x2c7b2dd8bdb23032c549cb56bea8f8a4ae7001d581b5f30e31165a845fdddae3
- 0x2a46b413c4a79ee979d8a40f091ba215dc98b3af9709a0311b2ff60a4cb34d60
- 0x5bcdf911ebda5c6d942d996f5453cef161d2571921ceb388d7c8ffbdc925f4d0
- 0x9e70d944564843a0f0d88b623d628ff2e2ac17c172d4ebe0ed141fe8b9f9dae4
- 0x42784d9809d120654630ee1b254a1dd90a2bbd3024aa180f1a59bbf53e9316e4
- 0x8360ee1105e4d9f9312067cbbfd47c69c5948665ae582b9684a580c8f4e199e1
- 0x52efa60e0c3d8525486d2310eb3b6b566c9677c64fd1f819edb072cf101bcbdb
- 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
- 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4