A payments protocol for the internet. Built on HTTP.
This report presents the forensic synthetic code analysis of x402-foundation/x402, a TypeScript project with 6,316 GitHub stars. SynthScan v2.0 examined 550,696 lines of code across 2579 source files, recording 4708 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 12.2 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4708 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/tests/test_exact.py | 53 | def test_prepare_payment_header(account, payment_requirements): | CODE |
| LOW | python/legacy/tests/test_exact.py | 107 | def test_sign_payment_header_no_account(payment_requirements): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 13 | def test_browser_request_with_html_accept_and_mozilla(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 20 | def test_browser_request_case_insensitive(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 38 | def test_html_accept_but_no_mozilla(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 45 | def test_mozilla_user_agent_but_no_html(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 56 | def test_create_config_with_payment_requirements(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 80 | def test_create_config_with_mainnet(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 98 | def test_create_config_with_paywall_config(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 121 | def test_create_config_empty_requirements(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 133 | def test_inject_payment_data_basic(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 164 | def test_inject_payment_data_mainnet_no_console_log(self): | STRING |
| LOW | python/legacy/tests/test_paywall.py | 194 | def test_inject_preserves_html_structure(self): | STRING |
| LOW | python/legacy/tests/test_paywall.py | 260 | def test_script_close_tag_in_resource_url_is_escaped(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 274 | def test_lt_gt_amp_escaped_inside_script_block(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 282 | def test_escaped_json_still_round_trips(self): | CODE |
| LOW | python/legacy/tests/test_paywall.py | 295 | def test_get_paywall_html_integration(self): | CODE |
| LOW | python/legacy/tests/test_common.py | 49 | def test_process_price_to_atomic_amount_money(): | CODE |
| LOW | python/legacy/tests/test_common.py | 69 | def test_process_price_to_atomic_amount_token(): | CODE |
| LOW | python/legacy/tests/test_common.py | 90 | def test_process_price_to_atomic_amount_invalid(): | CODE |
| LOW | python/legacy/tests/test_common.py | 110 | def test_find_matching_payment_requirements(): | CODE |
| LOW | python/legacy/tests/test_encoding.py | 53 | def test_encode_decode_roundtrip(): | CODE |
| LOW | python/legacy/tests/test_types.py | 13 | def test_payment_requirements_serde(): | CODE |
| LOW | python/legacy/tests/test_types.py | 91 | def test_exact_payment_payload_serde(): | CODE |
| LOW | python/legacy/tests/test_types.py | 106 | def test_verify_response_serde(): | CODE |
| LOW | python/legacy/tests/test_types.py | 113 | def test_settle_response_serde(): | CODE |
| LOW | python/legacy/tests/test_types.py | 132 | def test_payment_payload_serde(): | CODE |
| LOW | python/legacy/tests/clients/test_requests.py | 79 | def test_adapter_send_success(adapter): | CODE |
| LOW | python/legacy/tests/clients/test_requests.py | 132 | def test_adapter_payment_flow(adapter, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_requests.py | 209 | def test_adapter_payment_error(adapter, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_requests.py | 237 | def test_adapter_general_error(adapter): | CODE |
| LOW | python/legacy/tests/clients/test_httpx.py | 67 | async def test_on_response_missing_request(hooks): | CODE |
| LOW | python/legacy/tests/clients/test_httpx.py | 78 | async def test_on_response_payment_flow(hooks, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_httpx.py | 141 | async def test_on_response_payment_error(hooks, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_httpx.py | 163 | async def test_on_response_general_error(hooks): | CODE |
| LOW | python/legacy/tests/clients/test_base.py | 45 | def test_decode_x_payment_response(): | CODE |
| LOW | python/legacy/tests/clients/test_base.py | 72 | def test_client_initialization(account): | CODE |
| LOW | python/legacy/tests/clients/test_base.py | 108 | def test_select_payment_requirements(client, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_base.py | 132 | def test_select_payment_requirements_amount_exceeded(client, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_base.py | 140 | def test_create_payment_header(client, payment_requirements): | CODE |
| LOW | python/legacy/tests/clients/test_base.py | 157 | def test_payment_requirements_sorting(client): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 5 | def create_app_with_middleware(configs): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 22 | def test_payment_required_for_protected_route(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 58 | def test_invalid_payment_header(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 76 | def test_path_pattern_matching(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 106 | def test_multiple_middleware_configs(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 136 | def test_payment_details_in_g(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 155 | def test_browser_request_returns_html(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 185 | def test_api_client_request_returns_json(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 213 | def test_paywall_config_injection(): | CODE |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 290 | def test_mainnet_vs_testnet_config(): | STRING |
| LOW | python/legacy/tests/flask_tests/test_middleware.py | 335 | def test_payment_amount_conversion(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 11 | def test_middleware_invalid_payment(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 31 | def test_app_middleware_path_matching(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 58 | def test_middleware_path_list_matching(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 320 | def test_browser_request_returns_html(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 350 | def test_api_client_request_returns_json(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 378 | def test_paywall_config_injection(): | CODE |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 458 | def test_mainnet_vs_testnet_config(): | STRING |
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 505 | def test_payment_amount_conversion(): | CODE |
| 1933 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 18 | // ─── Mock facilitator signer ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 97 | // ─── Test addresses (valid 40-hex-char Ethereum addresses) ────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 172 | // ─── VerifyUptoPermit2 — asset contract validation ─────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 200 | // ─── VerifyUptoPermit2 — input validation tests ────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 443 | // ─── SettleUptoPermit2 tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 598 | // ─── BuildUptoPermit2SettleArgs tests ──────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 671 | // ─── validateEip2612PermitForPayment tests ─────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 726 | // ─── splitEip2612Signature tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 765 | // ─── parseUptoPermit2Error tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 796 | // ─── UptoEvmScheme wrapper tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/upto/facilitator/permit2_test.go | 929 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/batch-settlement/errors.go | 13 | // ── Facilitator-emitted reason shared with the client ───────────────── | COMMENT |
| MEDIUM | go/mechanisms/evm/batch-settlement/errors.go | 23 | // ── Resource-server-emitted reasons ─────────────────────────────────── | COMMENT |
| MEDIUM | python/x402/interfaces.py | 44 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 46 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 84 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 86 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 159 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 161 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 350 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/interfaces.py | 352 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | python/x402/server.py | 57 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | python/x402/server.py | 59 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | python/x402/server.py | 440 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server.py | 442 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 113 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 115 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 171 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 173 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 227 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 229 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 327 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server.py | 329 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server.py | 401 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 403 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 496 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server.py | 498 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server_base.py | 390 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server_base.py | 392 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server_base.py | 460 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server_base.py | 462 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server_base.py | 875 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | python/x402/server_base.py | 877 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server_base.py | 137 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server_base.py | 139 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server_base.py | 190 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server_base.py | 192 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server_base.py | 239 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server_base.py | 241 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/server_base.py | 290 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server_base.py | 292 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server_base.py | 945 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server_base.py | 947 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server_base.py | 1092 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/server_base.py | 1094 | # ======================================================================== | COMMENT |
| MEDIUM | python/x402/facilitator_base.py | 42 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/facilitator_base.py | 44 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/facilitator_base.py | 76 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/facilitator_base.py | 78 | # ============================================================================ | COMMENT |
| MEDIUM | python/x402/facilitator_base.py | 90 | # ============================================================================ | COMMENT |
| 474 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/src/x402/types.py | 1 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 1 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 1 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 2 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 2 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 6 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 6 | CODE | |
| LOW | python/legacy/src/x402/clients/__init__.py | 6 | CODE | |
| LOW | python/x402/interfaces.py | 9 | CODE | |
| LOW | python/x402/server.py | 8 | CODE | |
| LOW | python/x402/server.py | 15 | CODE | |
| LOW | python/x402/server_base.py | 6 | CODE | |
| LOW | python/x402/facilitator_base.py | 6 | CODE | |
| LOW | python/x402/client.py | 7 | CODE | |
| LOW | python/x402/client.py | 15 | CODE | |
| LOW | python/x402/client.py | 15 | CODE | |
| LOW | python/x402/client.py | 15 | CODE | |
| LOW | python/x402/client.py | 15 | CODE | |
| LOW | python/x402/client.py | 15 | CODE | |
| LOW | python/x402/hook_policy.py | 3 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 55 | CODE | |
| LOW | python/x402/__init__.py | 65 | CODE | |
| LOW | python/x402/__init__.py | 65 | CODE | |
| LOW | python/x402/__init__.py | 68 | CODE | |
| LOW | python/x402/__init__.py | 68 | CODE | |
| LOW | python/x402/__init__.py | 68 | CODE | |
| LOW | python/x402/__init__.py | 68 | CODE | |
| LOW | python/x402/__init__.py | 68 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| LOW | python/x402/__init__.py | 77 | CODE | |
| 1099 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/legacy/src/x402/common.py | 35 | Process a Price into atomic amount, asset address, and EIP-712 domain info Args: price: Either Money (USD s | STRING |
| HIGH | python/legacy/src/x402/clients/base.py | 92 | Select payment requirements from the list of accepted requirements. Args: accepts: List of accepted | STRING |
| HIGH | python/legacy/src/x402/clients/base.py | 138 | Select payment requirements using the configured selector. Args: accepts: List of accepted payment | STRING |
| HIGH | python/x402/server.py | 185 | Verify a payment via facilitator. Args: payload: Payment payload to verify. requirement | STRING |
| HIGH | python/x402/server.py | 241 | Settle a payment via facilitator. Args: payload: Payment payload to settle. requirement | STRING |
| HIGH | python/x402/server.py | 454 | Verify a payment via facilitator. Args: payload: Payment payload to verify. requirement | STRING |
| HIGH | python/x402/server.py | 510 | Settle a payment via facilitator. Args: payload: Payment payload to settle. requirement | STRING |
| HIGH | python/x402/facilitator_base.py | 384 | Core verify logic as generator. Yields (phase, hook, context) tuples for hook execution. The caller dri | STRING |
| HIGH | python/x402/facilitator_base.py | 491 | Core settle logic as generator. Yields (phase, hook, context) tuples for hook execution. The caller dri | STRING |
| HIGH | python/x402/client.py | 171 | Create a payment payload for the given 402 response. Args: payment_required: The 402 response from | STRING |
| HIGH | python/x402/client.py | 357 | Create a payment payload for the given 402 response. Args: payment_required: The 402 response from | STRING |
| HIGH | python/x402/facilitator.py | 126 | Verify a payment. Routes to V1 or V2 verification based on payload version. Args: payload: | STRING |
| HIGH | python/x402/facilitator.py | 163 | Settle a payment. Routes to V1 or V2 settlement based on payload version. Args: payload: P | STRING |
| HIGH | python/x402/facilitator.py | 280 | Verify a payment. Routes to V1 or V2 verification based on payload version. Args: payload: | STRING |
| HIGH | python/x402/facilitator.py | 317 | Settle a payment. Routes to V1 or V2 settlement based on payload version. Args: payload: P | STRING |
| HIGH | python/x402/mechanisms/svm/signers.py | 171 | Sign a partially-signed transaction. Supports both legacy and versioned (v0) transactions: - Legacy tra | STRING |
| HIGH | python/x402/mechanisms/svm/signers.py | 288 | Send a transaction. Args: tx_base64: Base64 encoded signed transaction. network: CAIP-2 | STRING |
| HIGH | python/x402/mechanisms/svm/utils.py | 35 | Normalize network identifier to CAIP-2 format. Handles both V1 names (solana, solana-devnet) and V2 CAIP-2 format. | STRING |
| HIGH | python/x402/mechanisms/svm/utils.py | 63 | Get configuration for a network. Args: network: Network identifier (CAIP-2 or V1 format). Returns: | STRING |
| HIGH | python/x402/mechanisms/svm/utils.py | 94 | Get the default USDC mint address for a network. Args: network: Network identifier (CAIP-2 or V1 format). | STRING |
| HIGH | python/x402/mechanisms/svm/utils.py | 118 | Get asset info for a network. Args: network: Network identifier. asset_address: Optional specific a | STRING |
| HIGH | python/x402/mechanisms/svm/utils.py | 140 | Convert a decimal amount to token smallest units. Args: decimal_amount: The decimal amount (e.g., "0.10"). | STRING |
| HIGH | python/x402/mechanisms/svm/utils.py | 233 | Decode a base64 encoded transaction from an SVM payload. Args: payload: The SVM payload containing a base64 | STRING |
| HIGH | python/x402/mechanisms/svm/signer.py | 74 | Sign a partially-signed transaction with the signer matching fee_payer. Transaction is decoded, signed, and re- | STRING |
| HIGH | python/x402/mechanisms/svm/signer.py | 104 | Send a signed transaction to the network. Args: tx_base64: Base64 encoded signed transaction. | STRING |
| HIGH | python/x402/mechanisms/svm/exact/server.py | 49 | Parse price into asset amount. If price is already AssetAmount, returns it directly. If price is Money | STRING |
| HIGH | python/x402/mechanisms/svm/exact/client.py | 90 | Create signed SPL TransferChecked inner payload. Args: requirements: Payment requirements from serv | STRING |
| HIGH | python/x402/mechanisms/svm/exact/v1/client.py | 94 | Create signed SPL TransferChecked inner payload (V1 format). Args: requirements: V1 payment require | STRING |
| HIGH | python/x402/mechanisms/evm/erc6492.py | 31 | Parse ERC-6492 wrapped signature. ERC-6492 Format: abi.encode((address factory, bytes factoryCalldata, byte | STRING |
| HIGH | python/x402/mechanisms/evm/utils.py | 22 | Extract chain ID from a CAIP-2 network identifier (eip155:CHAIN_ID). Args: network: Network identifier in C | STRING |
| HIGH | python/x402/mechanisms/evm/utils.py | 43 | Get configuration for a CAIP-2 network identifier (eip155:CHAIN_ID). Returns a full config for known networks, or a | STRING |
| HIGH | python/x402/mechanisms/evm/utils.py | 71 | Get asset info by address. Returns the full default asset info if the address matches the network's default asset. | STRING |
| HIGH | python/x402/mechanisms/evm/utils.py | 134 | Normalize Ethereum address to checksummed format. Uses EIP-55 checksum algorithm. Args: address: Ether | STRING |
| HIGH | python/x402/mechanisms/evm/verify.py | 24 | Verify ECDSA signature from EOA. Uses secp256k1 public key recovery. Handles Ethereum v value adjustment (27/28 | STRING |
| HIGH | python/x402/mechanisms/evm/v1/utils.py | 8 | Extract chain ID from a v1 legacy network name. Args: network: V1 network name (e.g., "base-sepolia", "poly | STRING |
| HIGH | python/x402/mechanisms/evm/v1/utils.py | 26 | Get asset info for a v1 network by legacy network name. Args: network: V1 legacy network name (e.g., "base" | STRING |
| HIGH | python/x402/mechanisms/evm/exact/server.py | 54 | Parse price into asset amount. If price is already AssetAmount, returns it directly. If price is Money | STRING |
| HIGH | python/x402/mechanisms/evm/exact/server.py | 163 | Convert decimal amount to network's default stablecoin AssetAmount. Args: amount: Decimal amount (e | STRING |
| HIGH | python/x402/mechanisms/evm/exact/client.py | 242 | Sign EIP-3009 authorization using EIP-712. Requires requirements.extra to contain 'name' and 'version' | STRING |
| HIGH | python/x402/mcp/client_async.py | 149 | Call a tool with automatic payment handling. Args: name: Tool name args: Tool arguments | STRING |
| HIGH | python/x402/schemas/helpers.py | 12 | Extract x402Version from JSON bytes or dict. Args: data: JSON bytes or parsed dict. Returns: P | STRING |
| HIGH | python/x402/schemas/helpers.py | 42 | Extract scheme and network from payment payload. Args: version: Protocol version (1 or 2). payload: | STRING |
| HIGH | python/x402/schemas/helpers.py | 166 | Parse payment requirements based on protocol version. Unlike parse_payment_payload which auto-detects version from | STRING |
| HIGH | python/x402/schemas/helpers.py | 197 | Check if network matches a pattern (supports wildcards). Args: network: Specific network (e.g., "eip155:845 | STRING |
| HIGH | python/x402/schemas/helpers.py | 220 | Derive common pattern from list of networks. If all networks share same namespace, returns wildcard pattern. Ot | STRING |
| HIGH | python/x402/extensions/builder_code/server.py | 37 | Declare the builder-code extension for inclusion in PaymentRequired.extensions. Args: app_code: The service | STRING |
| HIGH | python/x402/extensions/bazaar/facilitator_client.py | 205 | List x402 discovery resources from the bazaar. Args: params: Optional filtering and pagination para | STRING |
| HIGH | python/x402/extensions/bazaar/facilitator_client.py | 275 | Search x402 discovery resources from the bazaar using a natural-language query. Pagination is optional: facilit | STRING |
| HIGH | python/x402/extensions/bazaar/facilitator.py | 693 | Extract discovery info from a v2 extension directly. This is a lower-level function for when you already have the e | STRING |
| HIGH | python/x402/extensions/payment_identifier/client.py | 15 | Append a payment identifier to the extensions object if the server declared support. This function reads the server | STRING |
| HIGH | python/x402/http/facilitator_client.py | 189 | Verify a payment with the facilitator (async). Args: payload: Payment payload to verify. | STRING |
| HIGH | python/x402/http/facilitator_client.py | 213 | Settle a payment with the facilitator (async). Args: payload: Payment payload to settle. | STRING |
| HIGH | python/x402/http/facilitator_client.py | 411 | Verify a payment with the facilitator. Args: payload: Payment payload to verify. requir | STRING |
| HIGH | python/x402/http/facilitator_client.py | 435 | Settle a payment with the facilitator. Args: payload: Payment payload to settle. requir | STRING |
| HIGH | python/x402/http/utils.py | 83 | Detect the x402 protocol version from HTTP response headers and body. Prioritizes V2 header, then V1 body. Arg | STRING |
| HIGH | python/x402/http/x402_http_client_base.py | 126 | Extract payment required from HTTP response. Handles both V1 (body) and V2 (header) formats. Args: | STRING |
| HIGH | python/x402/http/x402_http_client_base.py | 158 | Extract settlement response from HTTP headers. Args: get_header: Function to get header by name. | STRING |
| HIGH | python/x402/http/clients/requests.py | 96 | Send request with automatic 402 payment handling. Args: request: The prepared request. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/x402/server.py | 0 | execute hook synchronously. raises if async hook detected. | STRING |
| HIGH | python/x402/client.py | 0 | execute hook synchronously. raises if async hook detected. | STRING |
| HIGH | python/x402/facilitator.py | 0 | execute hook synchronously. raises if async hook detected. | STRING |
| HIGH | python/x402/facilitator_base.py | 0 | get supported payment kinds and extensions. returns: supportedresponse with kinds, extensions, and signers. | STRING |
| HIGH | examples/python/facilitator/advanced/bazaar.py | 0 | get supported payment kinds and extensions. returns: supportedresponse with kinds, extensions, and signers. | STRING |
| HIGH | examples/python/facilitator/advanced/all_networks.py | 0 | get supported payment kinds and extensions. returns: supportedresponse with kinds, extensions, and signers. | STRING |
| HIGH | examples/python/facilitator/basic/main.py | 0 | get supported payment kinds and extensions. returns: supportedresponse with kinds, extensions, and signers. | STRING |
| HIGH | e2e/facilitators/python/main.py | 0 | get supported payment kinds and extensions. returns: supportedresponse with kinds, extensions, and signers. | STRING |
| HIGH | python/x402/mechanisms/svm/signers.py | 0 | get or create rpc client for network. args: network: network identifier. returns: solana rpc client. | STRING |
| HIGH | python/x402/mechanisms/svm/exact/client.py | 0 | get or create rpc client for network. args: network: network identifier. returns: solana rpc client. | STRING |
| HIGH | python/x402/mechanisms/svm/exact/v1/client.py | 0 | get or create rpc client for network. args: network: network identifier. returns: solana rpc client. | STRING |
| HIGH | python/x402/mechanisms/svm/exact/v1/facilitator.py | 0 | get facilitator wallet addresses. args: network: network identifier. returns: list of facilitator addresses. | STRING |
| HIGH | python/x402/mechanisms/evm/exact/facilitator.py | 0 | get facilitator wallet addresses. args: network: network identifier. returns: list of facilitator addresses. | STRING |
| HIGH | python/x402/mechanisms/evm/exact/v1/facilitator.py | 0 | get facilitator wallet addresses. args: network: network identifier. returns: list of facilitator addresses. | STRING |
| HIGH | python/x402/tests/unit/mechanisms/svm/test_types.py | 0 | should preserve data through serialization round-trip. | STRING |
| HIGH | python/x402/tests/unit/mechanisms/evm/test_types.py | 0 | should preserve data through serialization round-trip. | STRING |
| HIGH | python/x402/tests/unit/mechanisms/tvm/test_types.py | 0 | should preserve data through serialization round-trip. | STRING |
| HIGH | python/x402/tests/unit/http/test_x402_http_client.py | 0 | test that 402 response triggers payment creation and retry. | STRING |
| HIGH | python/x402/tests/unit/http/clients/test_requests.py | 0 | test that 402 response triggers payment creation and retry. | STRING |
| HIGH | python/x402/tests/unit/http/clients/test_httpx.py | 0 | test that 402 response triggers payment creation and retry. | STRING |
| HIGH | examples/python/clients/advanced/all_networks.py | 0 | all networks server example. demonstrates how to create a server that supports all available networks with optional chai | STRING |
| HIGH | examples/python/facilitator/advanced/all_networks.py | 0 | all networks server example. demonstrates how to create a server that supports all available networks with optional chai | STRING |
| HIGH | examples/python/servers/advanced/all_networks.py | 0 | all networks server example. demonstrates how to create a server that supports all available networks with optional chai | STRING |
| HIGH | examples/python/clients/advanced/all_networks.py | 0 | validate required environment variables. returns: tuple of (evm_private_key, svm_private_key, base_url, endpoint_path). | STRING |
| HIGH | examples/python/clients/requests/main.py | 0 | validate required environment variables. returns: tuple of (evm_private_key, svm_private_key, base_url, endpoint_path). | STRING |
| HIGH | examples/python/clients/httpx/main.py | 0 | validate required environment variables. returns: tuple of (evm_private_key, svm_private_key, base_url, endpoint_path). | STRING |
| HIGH | examples/python/clients/custom/main.py | 0 | validate required environment variables. returns: tuple of (evm_private_key, svm_private_key, base_url, endpoint_path). | STRING |
| HIGH | examples/python/clients/mcp/advanced.py | 0 | connect - already connected via session context manager. | STRING |
| HIGH | examples/python/clients/mcp/simple.py | 0 | connect - already connected via session context manager. | STRING |
| HIGH | examples/python/clients/mcp-chatbot/main.py | 0 | connect - already connected via session context manager. | STRING |
| HIGH | examples/python/facilitator/advanced/bazaar.py | 0 | settle a payment on-chain. args: request: payment payload and requirements to settle. returns: settleresponse with succe | STRING |
| HIGH | examples/python/facilitator/advanced/all_networks.py | 0 | settle a payment on-chain. args: request: payment payload and requirements to settle. returns: settleresponse with succe | STRING |
| HIGH | examples/python/facilitator/basic/main.py | 0 | settle a payment on-chain. args: request: payment payload and requirements to settle. returns: settleresponse with succe | STRING |
| HIGH | examples/python/servers/mcp/advanced.py | 0 | get current weather for a city. requires payment of $0.001. | STRING |
| HIGH | examples/python/servers/mcp/existing_server.py | 0 | get current weather for a city. requires payment of $0.001. | STRING |
| HIGH | examples/python/servers/mcp/simple.py | 0 | get current weather for a city. requires payment of $0.001. | STRING |
| HIGH | scripts/prepare-typescript-release.py | 0 | query($owner: string!, $name: string!, $number: int!, $after: string) { repository(owner: $owner, name: $name) { pullreq | STRING |
| HIGH | scripts/prepare-go-release.py | 0 | query($owner: string!, $name: string!, $number: int!, $after: string) { repository(owner: $owner, name: $name) { pullreq | STRING |
| HIGH | scripts/prepare-python-release.py | 0 | query($owner: string!, $name: string!, $number: int!, $after: string) { repository(owner: $owner, name: $name) { pullreq | STRING |
| HIGH | scripts/prepare-typescript-release.py | 0 | raised when the release-prep inputs or files are invalid. | STRING |
| HIGH | scripts/prepare-go-release.py | 0 | raised when the release-prep inputs or files are invalid. | STRING |
| HIGH | scripts/prepare-python-release.py | 0 | raised when the release-prep inputs or files are invalid. | STRING |
| HIGH | scripts/tag-python-release.py | 0 | raised when the release-tag inputs or git state are invalid. | STRING |
| HIGH | scripts/tag-go-release.py | 0 | raised when the release-tag inputs or git state are invalid. | STRING |
| HIGH | scripts/tag-typescript-release.py | 0 | raised when the release-tag inputs or git state are invalid. | STRING |
| HIGH | scripts/tag-python-release.py | 0 | reduce a git remote url to its ``owner/repo`` form. | STRING |
| HIGH | scripts/tag-go-release.py | 0 | reduce a git remote url to its ``owner/repo`` form. | STRING |
| HIGH | scripts/tag-typescript-release.py | 0 | reduce a git remote url to its ``owner/repo`` form. | STRING |
| HIGH | scripts/tag-python-release.py | 0 | refuse to tag unless head is exactly the release remote's main head. tags point at the currently checked-out commit, so | STRING |
| HIGH | scripts/tag-go-release.py | 0 | refuse to tag unless head is exactly the release remote's main head. tags point at the currently checked-out commit, so | STRING |
| HIGH | scripts/tag-typescript-release.py | 0 | refuse to tag unless head is exactly the release remote's main head. tags point at the currently checked-out commit, so | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 86 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 138 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 155 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 170 | // Step 4: Verify Transfer Instruction | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 175 | // Step 5: Verify optional instructions (if present) | COMMENT |
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 221 | // Step 6: Sign and Simulate Transaction | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 85 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 128 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 145 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/facilitator/scheme.go | 173 | // Step 4: Verify Transfer Instruction | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/facilitator/scheme.go | 178 | // Step 5: Verify optional instructions (if present) | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 224 | // Step 6: Sign and Simulate Transaction | COMMENT |
| LOW⚡ | go/mechanisms/evm/verify_universal.go | 48 | // Step 1: Parse ERC-6492 wrapper if present | COMMENT |
| LOW⚡ | go/mechanisms/evm/verify_universal.go | 54 | // Step 2: Always fetch code first. Routing is determined by whether the address | COMMENT |
| LOW | go/mechanisms/evm/verify_universal.go | 67 | // Step 5: Handle undeployed address | COMMENT |
| LOW | go/mechanisms/evm/verify_universal.go | 93 | // Step 6: Deployed smart contract - use EIP-1271 verification | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 151 | # Step 1: Validate Payment Requirements | COMMENT |
| LOW⚡ | python/x402/mechanisms/svm/exact/facilitator.py | 170 | # Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 188 | # Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 235 | # Step 4: Verify Transfer Instruction | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 248 | # Step 5: Verify optional instructions (if present) | COMMENT |
| LOW⚡ | python/x402/mechanisms/svm/exact/facilitator.py | 338 | # Step 5: Sign and Simulate Transaction | COMMENT |
| LOW⚡ | specs/CONTRIBUTING.md | 64 | ### Step 1: Open a Discussion | COMMENT |
| LOW⚡ | specs/CONTRIBUTING.md | 72 | ### Step 2: Write the Spec | COMMENT |
| LOW⚡ | specs/CONTRIBUTING.md | 82 | ### Step 3: Submit PR | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 227 | // Step 4: Extract and validate contract invocation details | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 235 | // Step 5: Validate contract address and function name | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 385 | // Step 3: Extract operation | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 388 | // Step 4: Rebuild transaction with facilitator as source and facilitator-chosen fee | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 177 | // Step 1: Validate protocol version, scheme, and network | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 196 | // Step 2: Parse and decode transaction | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 210 | // Step 3: Validate transaction structure | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 251 | // Step 6: Extract and validate transfer arguments | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 269 | // Step 7: Re-simulate to ensure transaction will succeed | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 280 | // Step 8: Validate if the resource fees are within acceptable bounds | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 297 | // Step 9: Validate simulation events for expected transfer only. | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 316 | // Step 10: Validate auth entries (structure, credential type, expiration, facilitator safety, and signature statu | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 353 | // Step 1: Verify payment before settlement | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 368 | // Step 2: Parse transaction envelope once to extract both transaction and Soroban data | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 422 | // Step 5: Sign inner transaction with the selected signer's key | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 437 | // Step 6: Optionally wrap in a fee bump transaction | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 474 | // Step 7: Submit transaction to network | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 487 | // Step 8: Poll for transaction confirmation | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 502 | // Step 9: Return success | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 78 | // Step 2: Verify x402Version is 2 | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 87 | // Step 3: Verify the network matches | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 101 | // Step 4: Deserialize the BCS-encoded transaction and verify the signature | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 210 | // Step 5: Verify the transaction has not expired | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 221 | // Step 6: Verify the transaction contains a fungible asset transfer operation | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 276 | // Step 7: Verify the transfer is for the correct asset | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 286 | // Step 8: Verify the transfer amount matches | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 296 | // Step 9: Verify the transfer recipient matches | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 306 | // Step 10: Verify the sender has sufficient balance | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 325 | // Step 11: Simulate the transaction | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 109 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 144 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 174 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 196 | // Step 4: Verify Transfer Instruction | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 285 | // Step 5: Verify optional instructions (if present) | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 335 | // Step 6: Sign and Simulate Transaction | COMMENT |
| 71 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/src/x402/exact.py | 106 | except Exception: | CODE |
| LOW | python/legacy/src/x402/flask/middleware.py | 162 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/flask/middleware.py | 253 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/flask/middleware.py | 322 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/clients/httpx.py | 74 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/clients/requests.py | 82 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/fastapi/middleware.py | 86 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/fastapi/middleware.py | 171 | except Exception as e: | CODE |
| LOW | python/legacy/src/x402/fastapi/middleware.py | 218 | except Exception: | CODE |
| LOW | python/x402/server.py | 312 | except Exception as error: | CODE |
| LOW | python/x402/server.py | 582 | except Exception as error: | CODE |
| LOW | python/x402/server_base.py | 578 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 616 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 678 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 716 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 755 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 776 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 815 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 836 | except Exception as hook_error: | CODE |
| LOW | python/x402/server_base.py | 1218 | except Exception as e: | CODE |
| LOW | python/x402/server_base.py | 1435 | except Exception as e: | CODE |
| LOW | python/x402/facilitator_base.py | 468 | except Exception as e: | CODE |
| LOW | python/x402/facilitator_base.py | 575 | except Exception as e: | CODE |
| LOW | python/x402/client.py | 233 | except Exception as hook_error: | CODE |
| LOW | python/x402/client.py | 416 | except Exception as hook_error: | CODE |
| LOW | python/x402/client_base.py | 529 | except Exception as e: | CODE |
| LOW | python/x402/client_base.py | 617 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/svm/utils.py | 154 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/svm/utils.py | 247 | except Exception as e: | CODE |
| LOW⚡ | python/x402/mechanisms/svm/exact/facilitator.py | 173 | except Exception: | CODE |
| LOW⚡ | python/x402/mechanisms/svm/exact/facilitator.py | 348 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 431 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/svm/exact/v1/facilitator.py | 159 | except Exception: | CODE |
| LOW | python/x402/mechanisms/svm/exact/v1/facilitator.py | 330 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/svm/exact/v1/facilitator.py | 408 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/evm/multicall.py | 107 | except Exception as exc: | CODE |
| LOW | python/x402/mechanisms/evm/multicall.py | 134 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/multicall.py | 140 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/signers.py | 464 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/signers.py | 469 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/evm/erc6492.py | 76 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/evm/verify.py | 65 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/verify.py | 105 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/verify.py | 266 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/client.py | 130 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/client.py | 184 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 111 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 127 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 141 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 157 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 204 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 235 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 258 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 297 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 337 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 354 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 445 | except Exception: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 662 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 732 | except Exception as e: | CODE |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 787 | except Exception as e: | CODE |
| 167 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 86 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 138 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 155 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 170 | // Step 4: Verify Transfer Instruction | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 175 | // Step 5: Verify optional instructions (if present) | COMMENT |
| LOW | go/mechanisms/svm/exact/v1/facilitator/scheme.go | 221 | // Step 6: Sign and Simulate Transaction | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 85 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 128 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 145 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/facilitator/scheme.go | 173 | // Step 4: Verify Transfer Instruction | COMMENT |
| LOW⚡ | go/mechanisms/svm/exact/facilitator/scheme.go | 178 | // Step 5: Verify optional instructions (if present) | COMMENT |
| LOW | go/mechanisms/svm/exact/facilitator/scheme.go | 224 | // Step 6: Sign and Simulate Transaction | COMMENT |
| LOW⚡ | go/mechanisms/evm/verify_universal.go | 48 | // Step 1: Parse ERC-6492 wrapper if present | COMMENT |
| LOW⚡ | go/mechanisms/evm/verify_universal.go | 54 | // Step 2: Always fetch code first. Routing is determined by whether the address | COMMENT |
| LOW | go/mechanisms/evm/verify_universal.go | 67 | // Step 5: Handle undeployed address | COMMENT |
| LOW | go/mechanisms/evm/verify_universal.go | 93 | // Step 6: Deployed smart contract - use EIP-1271 verification | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 151 | # Step 1: Validate Payment Requirements | COMMENT |
| LOW⚡ | python/x402/mechanisms/svm/exact/facilitator.py | 170 | # Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 188 | # Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 235 | # Step 4: Verify Transfer Instruction | COMMENT |
| LOW | python/x402/mechanisms/svm/exact/facilitator.py | 248 | # Step 5: Verify optional instructions (if present) | COMMENT |
| LOW⚡ | python/x402/mechanisms/svm/exact/facilitator.py | 338 | # Step 5: Sign and Simulate Transaction | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 227 | // Step 4: Extract and validate contract invocation details | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 235 | // Step 5: Validate contract address and function name | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 385 | // Step 3: Extract operation | COMMENT |
| LOW⚡ | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 388 | // Step 4: Rebuild transaction with facilitator as source and facilitator-chosen fee | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 177 | // Step 1: Validate protocol version, scheme, and network | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 196 | // Step 2: Parse and decode transaction | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 210 | // Step 3: Validate transaction structure | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 251 | // Step 6: Extract and validate transfer arguments | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 269 | // Step 7: Re-simulate to ensure transaction will succeed | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 280 | // Step 8: Validate if the resource fees are within acceptable bounds | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 297 | // Step 9: Validate simulation events for expected transfer only. | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 316 | // Step 10: Validate auth entries (structure, credential type, expiration, facilitator safety, and signature statu | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 353 | // Step 1: Verify payment before settlement | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 368 | // Step 2: Parse transaction envelope once to extract both transaction and Soroban data | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 422 | // Step 5: Sign inner transaction with the selected signer's key | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 437 | // Step 6: Optionally wrap in a fee bump transaction | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 474 | // Step 7: Submit transaction to network | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 487 | // Step 8: Poll for transaction confirmation | COMMENT |
| LOW | …ges/mechanisms/stellar/src/exact/facilitator/scheme.ts | 502 | // Step 9: Return success | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 78 | // Step 2: Verify x402Version is 2 | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 87 | // Step 3: Verify the network matches | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 101 | // Step 4: Deserialize the BCS-encoded transaction and verify the signature | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 210 | // Step 5: Verify the transaction has not expired | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 221 | // Step 6: Verify the transaction contains a fungible asset transfer operation | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 276 | // Step 7: Verify the transfer is for the correct asset | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 286 | // Step 8: Verify the transfer amount matches | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 296 | // Step 9: Verify the transfer recipient matches | COMMENT |
| LOW⚡ | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 306 | // Step 10: Verify the sender has sufficient balance | COMMENT |
| LOW | …kages/mechanisms/aptos/src/exact/facilitator/scheme.ts | 325 | // Step 11: Simulate the transaction | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 109 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 144 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 174 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 196 | // Step 4: Verify Transfer Instruction | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 285 | // Step 5: Verify optional instructions (if present) | COMMENT |
| LOW | …ages/mechanisms/svm/src/exact/v1/facilitator/scheme.ts | 335 | // Step 6: Sign and Simulate Transaction | COMMENT |
| LOW | …ackages/mechanisms/svm/src/exact/facilitator/scheme.ts | 398 | // Step 1: Validate Payment Requirements | COMMENT |
| LOW | …ackages/mechanisms/svm/src/exact/facilitator/scheme.ts | 437 | // Step 2: Parse and Validate Transaction Structure | COMMENT |
| LOW | …ackages/mechanisms/svm/src/exact/facilitator/scheme.ts | 573 | // Step 3: Verify Compute Budget Instructions | COMMENT |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | python/legacy/tests/test_common.py | 71 | # Create a test TokenAmount | COMMENT |
| MEDIUM | python/legacy/tests/clients/test_requests.py | 85 | # Create a prepared request | COMMENT |
| MEDIUM | python/legacy/tests/clients/test_requests.py | 101 | # Create a prepared request | COMMENT |
| MEDIUM | python/legacy/tests/clients/test_requests.py | 117 | # Create a prepared request | COMMENT |
| MEDIUM | python/legacy/tests/clients/test_requests.py | 163 | # Create a prepared request | COMMENT |
| MEDIUM | python/legacy/tests/clients/test_requests.py | 225 | # Create a prepared request | COMMENT |
| MEDIUM | python/legacy/tests/clients/test_requests.py | 243 | # Create a prepared request | COMMENT |
| MEDIUM | python/legacy/src/x402/paywall.py | 80 | # Create the window.x402 configuration object | COMMENT |
| MEDIUM | python/legacy/src/x402/paywall.py | 106 | # Create the configuration script | COMMENT |
| MEDIUM | python/x402/mechanisms/svm/exact/client.py | 189 | # Create a partially-signed transaction | COMMENT |
| MEDIUM | python/x402/mechanisms/svm/exact/v1/client.py | 193 | # Create a partially-signed transaction | COMMENT |
| MEDIUM | python/x402/tests/unit/extensions/test_exports.py | 55 | # Create a new namespace | COMMENT |
| MEDIUM | python/x402/tests/integrations/test_core.py | 387 | # Create a valid client to make payload | COMMENT |
| MEDIUM | python/x402/tests/integrations/test_evm.py | 616 | # Create a simple typed data message | COMMENT |
| MEDIUM | python/x402/tests/integrations/test_svm.py | 400 | # Create a mock facilitator for the server | COMMENT |
| MEDIUM | python/x402/mcp/tests/test_server_async.py | 29 | # Create an AsyncMock that wraps the real method so we can track calls | COMMENT |
| MEDIUM | python/x402/mcp/tests/test_server.py | 28 | # Create a Mock that wraps the real method so we can track calls | COMMENT |
| MEDIUM | python/x402/mcp/tests/test_client.py | 37 | # Create a mock result object with attributes (not dict) since _convert_mcp_result uses getattr | COMMENT |
| MEDIUM | python/x402/mcp/tests/test_client.py | 250 | # Create a mock result object with payment response | COMMENT |
| MEDIUM | python/x402/http/clients/requests.py | 153 | # Create a copy of the request for retry (don't modify original) | COMMENT |
| MEDIUM⚡ | examples/python/servers/mcp/simple.py | 97 | # Create the paid tool bridge (SDK handles _meta extraction + CallToolResult conversion) | COMMENT |
| MEDIUM | e2e/clients/mcp-python/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/clients/mcp-typescript/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/clients/mcp-typescript/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/clients/requests/main.py | 114 | # Create a session with x402 payment handling | COMMENT |
| MEDIUM | e2e/clients/fetch/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/clients/fetch/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/clients/axios/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/clients/axios/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/clients/requests/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/clients/requests/main.py | 27 | # Create a session and mount the x402 adapter | COMMENT |
| MEDIUM | e2e/legacy/clients/fetch/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/clients/fetch/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/clients/httpx/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/clients/axios/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/clients/axios/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/flask/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/next/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/next/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/express/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/express/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/hono/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/hono/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/legacy/servers/fastapi/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/facilitators/typescript/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/facilitators/typescript/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/mcp-python/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/next/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/express/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/express/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/mcp-typescript/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/mcp-typescript/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/hono/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/hono/build.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/fastify/install.sh | 3 | # This file is intentionally empty | COMMENT |
| MEDIUM | e2e/servers/fastify/build.sh | 3 | # This file is intentionally empty | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | go/facilitator_hooks.go | 81 | COMMENT | |
| LOW | go/facilitator_hooks.go | 101 | // If it returns a result with Abort=true, settlement will be aborted | COMMENT |
| LOW | go/server.go | 321 | networkClients, ok := s.facilitatorClients[network] | COMMENT |
| LOW | go/server_hooks.go | 161 | COMMENT | |
| LOW | go/server_hooks.go | 181 | // and an error will be returned with the provided reason | COMMENT |
| LOW | go/server_hooks.go | 241 | } | COMMENT |
| LOW | go/server_hooks.go | 301 | type OnVerifiedPaymentCanceledHookProvider interface { | COMMENT |
| LOW | go/server_hooks.go | 321 | // before merging. | COMMENT |
| LOW | go/server_hooks.go | 341 | // extension key is present in the request's `declaredExtensions` map. This | COMMENT |
| LOW | go/interfaces.go | 1 | package x402 | COMMENT |
| LOW | go/interfaces.go | 41 | // Examples: | COMMENT |
| LOW | go/interfaces.go | 61 | // which addresses might sign/pay for transactions. | COMMENT |
| LOW | go/interfaces.go | 101 | // PaymentResponseContext is passed to PaymentResponseHandler implementations after | COMMENT |
| LOW | go/interfaces.go | 121 | // the scheme has resynced its session state. | COMMENT |
| LOW | go/interfaces.go | 241 | COMMENT | |
| LOW | go/interfaces.go | 261 | GetExtra(network Network) map[string]interface{} | COMMENT |
| LOW | go/.golangci.yml | 41 | # Report unused function parameters | COMMENT |
| LOW | go/client_hooks.go | 61 | COMMENT | |
| LOW | go/errors.go | 101 | COMMENT | |
| LOW | go/mechanisms/svm/exact/server/scheme.go | 41 | // | COMMENT |
| LOW | go/mechanisms/svm/exact/server/scheme.go | 61 | return s | COMMENT |
| LOW | go/mechanisms/evm/eip712_test.go | 1 | package evm | COMMENT |
| LOW | go/mechanisms/evm/verify_1271.go | 21 | // This is bytes4(keccak256("isValidSignature(bytes32,bytes)")) | COMMENT |
| LOW | go/mechanisms/evm/verify_universal.go | 1 | package evm | COMMENT |
| LOW | go/mechanisms/evm/verify_universal.go | 21 | // 3. If undeployed + has deployment info + allowUndeployed: classify as counterfactual, | COMMENT |
| LOW | go/mechanisms/evm/utils.go | 161 | } | COMMENT |
| LOW | go/mechanisms/evm/erc6492.go | 21 | // | COMMENT |
| LOW | go/mechanisms/evm/erc6492.go | 41 | // | COMMENT |
| LOW | go/mechanisms/evm/verify_eoa.go | 1 | package evm | COMMENT |
| LOW | go/mechanisms/evm/eip712.go | 101 | digest := crypto.Keccak256(rawData) | COMMENT |
| LOW | go/mechanisms/evm/eip712.go | 261 | // HashPermit2Authorization hashes a PermitWitnessTransferFrom message for Permit2. | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/errors.go | 1 | // Package batched holds shared batch-settlement error constants used across | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/errors.go | 21 | ErrCumulativeBelowClaimed = "invalid_batch_settlement_evm_cumulative_below_claimed" | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/errors.go | 41 | COMMENT | |
| LOW | go/mechanisms/evm/batch-settlement/server/hooks.go | 21 | COMMENT | |
| LOW | go/mechanisms/evm/batch-settlement/server/hooks.go | 201 | // verifyVoucherLocally returns a successful VerifyResponse when the voucher can | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/server/hooks.go | 821 | enrichment["refundAuthorizerSignature"] = evm.BytesToHex(authSig) | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/server/storage.go | 61 | // chargedCumulativeAmount matches expectedCharged. Returns true if the | COMMENT |
| LOW | …hanisms/evm/batch-settlement/server/channel_manager.go | 41 | // claiming on each pass. Returning a subset of `channels` is the supported way | COMMENT |
| LOW | …mechanisms/evm/batch-settlement/facilitator/deposit.go | 761 | } | COMMENT |
| LOW | …anisms/evm/batch-settlement/facilitator/errors_test.go | 1 | package facilitator | COMMENT |
| LOW | …anisms/evm/batch-settlement/facilitator/errors_test.go | 141 | // expect for the Permit2 / EIP-2612 / ERC-20 approval families. cdp-facilitator | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/facilitator/utils.go | 281 | // Server-side `AfterVerifyHook` reads these fields directly off `extra` (e.g. | COMMENT |
| LOW | …/mechanisms/evm/batch-settlement/facilitator/refund.go | 301 | // channel's available balance after preceding claims; in that case | COMMENT |
| LOW | …ms/evm/batch-settlement/facilitator/deposit_permit2.go | 21 | permit2BranchStandard permit2DepositBranchKind = "standard" | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/client/extensions.go | 21 | // extension-aware path when the server's 402 advertises gas-sponsoring keys. | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/client/scheme.go | 41 | COMMENT | |
| LOW | go/mechanisms/evm/batch-settlement/client/scheme.go | 61 | type BatchSettlementEvmSchemeOptions struct { | COMMENT |
| LOW | go/mechanisms/evm/batch-settlement/client/refund.go | 41 | // RefundContext is the narrow view of the client scheme that the refund flow needs. | COMMENT |
| LOW | go/mechanisms/evm/exact/server/scheme.go | 41 | } | COMMENT |
| LOW | go/mechanisms/evm/exact/server/scheme.go | 61 | // if amount > 100 { | COMMENT |
| LOW | go/mechanisms/evm/exact/facilitator/scheme.go | 21 | // SimulateInSettle reruns transfer simulation during settle. Verify always simulates. | COMMENT |
| LOW | go/types/extensions.go | 1 | package types | COMMENT |
| LOW | go/test/integration/evm_batch_settlement_test.go | 1 | // Package integration_test contains integration tests for the x402 Go SDK. | COMMENT |
| LOW | go/test/integration/mcp_evm_test.go | 1 | //go:build mcp | COMMENT |
| LOW | go/test/integration/evm_wallet_matrix_test.go | 1 | // Package integration_test exercises the wallet compatibility matrix | COMMENT |
| LOW | go/.changes/v2.17.0.md | 1 | ## v2.17.0 - 2026-06-26 | COMMENT |
| LOW | go/.changes/2.4.1.md | 1 | ## 2.4.1 - 2026-02-25 | COMMENT |
| LOW | go/.changes/1.0.0.md | 1 | ## 1.0.0 - 2025-09-12 | COMMENT |
| LOW | go/.changes/v2.10.0.md | 1 | ## v2.10.0 - 2026-04-27 | COMMENT |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/src/x402/clients/__init__.py | 12 | __all__ = [ | CODE |
| LOW | python/legacy/src/x402/fastapi/middleware.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | python/x402/server.py | 48 | __all__ = [ | CODE |
| LOW | python/x402/client.py | 49 | __all__ = [ | CODE |
| LOW | python/x402/__init__.py | 151 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/svm/__init__.py | 92 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/svm/exact/__init__.py | 15 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/svm/exact/v1/__init__.py | 9 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/__init__.py | 123 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/upto/__init__.py | 14 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/batch_settlement/encoding.py | 104 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/batch_settlement/__init__.py | 59 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/batch_settlement/utils.py | 104 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/batch_settlement/abi.py | 224 | __all__ = [ | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/storage_utils.py | 51 | __all__ = ["read_json_file", "write_json_atomic", "delete_file"] | CODE |
| LOW | …2/mechanisms/evm/batch_settlement/authorizer_signer.py | 122 | __all__ = [ | CODE |
| LOW | …/evm/batch_settlement/server/channel_manager_common.py | 238 | __all__ = [ | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/server/settle.py | 375 | __all__ = [ | CODE |
| LOW | …402/mechanisms/evm/batch_settlement/server/__init__.py | 34 | __all__ = [ | CODE |
| LOW | …ms/evm/batch_settlement/server/channel_manager_sync.py | 327 | def _update_claimed_sessions(self, claims: list) -> None: | CODE |
| LOW | …ms/evm/batch_settlement/server/channel_manager_sync.py | 356 | __all__ = ["BatchSettlementChannelManagerSync", "ChannelManagerConfigSync"] | CODE |
| LOW | …n/x402/mechanisms/evm/batch_settlement/server/utils.py | 92 | __all__ = [ | CODE |
| LOW | …mechanisms/evm/batch_settlement/server/file_storage.py | 121 | __all__ = ["FileChannelStorage", "FileChannelStorageOptions"] | CODE |
| LOW | …x402/mechanisms/evm/batch_settlement/server/storage.py | 181 | __all__ = [ | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/server/verify.py | 409 | __all__ = [ | CODE |
| LOW | …hanisms/evm/batch_settlement/server/channel_manager.py | 337 | def _update_claimed_sessions(self, claims: list[VoucherClaim]) -> None: | CODE |
| LOW | …hanisms/evm/batch_settlement/server/channel_manager.py | 372 | __all__ = [ | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/server/scheme.py | 436 | __all__ = [ | CODE |
| LOW | …mechanisms/evm/batch_settlement/facilitator/deposit.py | 598 | __all__ = ["verify_deposit", "settle_deposit"] | CODE |
| LOW | …/mechanisms/evm/batch_settlement/facilitator/settle.py | 166 | __all__ = ["execute_settle"] | CODE |
| LOW | …echanisms/evm/batch_settlement/facilitator/__init__.py | 5 | __all__ = ["BatchSettlementEvmFacilitator", "BatchSettlementEvmFacilitatorConfig"] | CODE |
| LOW | …2/mechanisms/evm/batch_settlement/facilitator/claim.py | 125 | __all__ = ["build_voucher_claim_args", "execute_claim_with_signature"] | CODE |
| LOW | …2/mechanisms/evm/batch_settlement/facilitator/utils.py | 229 | __all__ = [ | CODE |
| LOW | …ms/evm/batch_settlement/facilitator/deposit_permit2.py | 333 | __all__ = [ | CODE |
| LOW | …mechanisms/evm/batch_settlement/facilitator/voucher.py | 102 | __all__ = ["verify_voucher"] | CODE |
| LOW | …ms/evm/batch_settlement/facilitator/deposit_eip3009.py | 186 | __all__ = [ | CODE |
| LOW | …/mechanisms/evm/batch_settlement/facilitator/scheme.py | 196 | __all__ = ["BatchSettlementEvmFacilitator"] | CODE |
| LOW | …/mechanisms/evm/batch_settlement/facilitator/refund.py | 304 | __all__ = ["execute_refund_with_signature"] | CODE |
| LOW | …n/x402/mechanisms/evm/batch_settlement/client/hooks.py | 65 | __all__ = [ | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/client/config.py | 156 | __all__ = [ | CODE |
| LOW | …402/mechanisms/evm/batch_settlement/client/recovery.py | 156 | __all__ = [ | CODE |
| LOW | …x402/mechanisms/evm/batch_settlement/client/channel.py | 194 | __all__ = [ | CODE |
| LOW | …402/mechanisms/evm/batch_settlement/client/__init__.py | 46 | __all__ = [ | CODE |
| LOW | …x402/mechanisms/evm/batch_settlement/client/eip3009.py | 100 | __all__ = ["create_batch_settlement_eip3009_deposit_payload"] | CODE |
| LOW | …mechanisms/evm/batch_settlement/client/file_storage.py | 45 | __all__ = ["FileChannelStorageOptions", "FileClientChannelStorage"] | CODE |
| LOW | …x402/mechanisms/evm/batch_settlement/client/permit2.py | 99 | __all__ = ["create_batch_settlement_permit2_deposit_payload"] | CODE |
| LOW | …x402/mechanisms/evm/batch_settlement/client/storage.py | 100 | __all__ = [ | CODE |
| LOW | …x402/mechanisms/evm/batch_settlement/client/voucher.py | 44 | __all__ = ["sign_voucher"] | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/client/scheme.py | 387 | __all__ = ["BatchSettlementEvmScheme"] | CODE |
| LOW | …/x402/mechanisms/evm/batch_settlement/client/refund.py | 293 | __all__ = ["RefundOptions", "refund_channel"] | CODE |
| LOW | python/x402/mechanisms/evm/exact/__init__.py | 16 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/evm/exact/facilitator.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW | python/x402/mechanisms/evm/exact/v1/__init__.py | 10 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/tvm/provider.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | python/x402/mechanisms/tvm/__init__.py | 116 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/tvm/utils.py | 43 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/tvm/codecs/__init__.py | 39 | __all__ = [ | CODE |
| LOW | python/x402/mechanisms/tvm/exact/__init__.py | 9 | __all__ = [ | CODE |
| LOW | python/x402/mcp/server.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | python/x402/mcp/server.py | 46 | __all__ = ["create_payment_wrapper"] | CODE |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/packages/mechanisms/evm/test/unit/upto/client.test.ts | 69 | expect(result.payload.permit2Authorization.witness.to.toLowerCase()).toBe( | CODE |
| CRITICAL | …/packages/mechanisms/evm/test/unit/upto/client.test.ts | 77 | expect(result.payload.permit2Authorization.witness.facilitator.toLowerCase()).toBe( | CODE |
| CRITICAL | …/packages/mechanisms/evm/test/unit/upto/client.test.ts | 298 | expect(result.payload.permit2Authorization.witness.facilitator.toLowerCase()).toBe( | CODE |
| CRITICAL | …packages/mechanisms/evm/test/unit/exact/client.test.ts | 330 | expect(result.payload.permit2Authorization.witness.to.toLowerCase()).toBe( | CODE |
| CRITICAL | …a/src/test/java/org/x402/server/PaymentFilterTest.java | 418 | org.junit.jupiter.api.Assertions.assertTrue(jsonString.contains("\"payer\":\"" + payerAddress + "\""), | CODE |
| CRITICAL | …a/src/test/java/org/x402/server/PaymentFilterTest.java | 420 | org.junit.jupiter.api.Assertions.assertTrue(jsonString.contains("\"success\":true"), | CODE |
| CRITICAL | …a/src/test/java/org/x402/server/PaymentFilterTest.java | 466 | org.junit.jupiter.api.Assertions.assertTrue(jsonString.contains("\"payer\":null"), | CODE |
| CRITICAL | …a/src/test/java/org/x402/server/PaymentFilterTest.java | 515 | org.junit.jupiter.api.Assertions.assertTrue(jsonString.contains("\"payer\":null"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| HIGH⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| HIGH⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| HIGH | python/x402/mechanisms/evm/verify.py | 178 | Mirrors the on-chain keccak256(\\x19\\x01 || domainSeparator || hashStruct(message)) | STRING |
| HIGH | python/x402/mcp/utils.py | 68 | # as explicit nulls (e.g. resource.mimeType: null); strict facilitators — and proxies that | COMMENT |
| HIGH | examples/python/clients/batch-settlement/main.py | 9 | uv sync && uv run python main.py | STRING |
| HIGH | examples/python/facilitator/batch-settlement/main.py | 8 | uv sync && uv run uvicorn main:app --port 4022 | STRING |
| HIGH | examples/python/servers/batch-settlement/main.py | 10 | uv sync && uv run python main.py | STRING |
| HIGH | scripts/prepare-typescript-release.py | 559 | "pnpm is required to preview version bumps. Install pnpm and run: cd typescript && pnpm install" | CODE |
| HIGH | scripts/prepare-typescript-release.py | 838 | "pnpm is required to version packages. Install pnpm and run: cd typescript && pnpm install" | CODE |
| HIGH | scripts/prepare-go-release.py | 476 | "go is required to locate changie. Install Go and run: cd go && make deps-dev" | CODE |
| HIGH | scripts/prepare-go-release.py | 495 | "changie is required to build the changelog. Install it with: cd go && make deps-dev" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/tests/fastapi_tests/test_middleware.py | 145 | CODE | |
| LOW | python/legacy/src/x402/flask/middleware.py | 147 | CODE | |
| LOW | python/legacy/src/x402/flask/middleware.py | 167 | CODE | |
| LOW | python/legacy/src/x402/clients/base.py | 86 | CODE | |
| LOW | python/x402/server.py | 175 | CODE | |
| LOW | python/x402/server.py | 231 | CODE | |
| LOW | python/x402/server.py | 444 | CODE | |
| LOW | python/x402/server.py | 500 | CODE | |
| LOW | python/x402/server_base.py | 348 | CODE | |
| LOW | python/x402/server_base.py | 1096 | CODE | |
| LOW | python/x402/server_base.py | 1281 | CODE | |
| LOW | python/x402/facilitator_base.py | 196 | CODE | |
| LOW | python/x402/facilitator_base.py | 377 | CODE | |
| LOW | python/x402/facilitator_base.py | 484 | CODE | |
| LOW | python/x402/mechanisms/svm/utils.py | 283 | CODE | |
| LOW | python/x402/mechanisms/evm/multicall.py | 180 | CODE | |
| LOW | python/x402/mechanisms/evm/eip712.py | 54 | CODE | |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 366 | CODE | |
| LOW | python/x402/mechanisms/evm/upto/permit2_utils.py | 849 | CODE | |
| LOW | …ms/evm/batch_settlement/server/channel_manager_sync.py | 161 | CODE | |
| LOW | …ms/evm/batch_settlement/server/channel_manager_sync.py | 183 | CODE | |
| LOW | …x402/mechanisms/evm/batch_settlement/server/storage.py | 148 | CODE | |
| LOW | …hanisms/evm/batch_settlement/server/channel_manager.py | 191 | CODE | |
| LOW | …/mechanisms/evm/batch_settlement/facilitator/refund.py | 139 | CODE | |
| LOW | …/x402/mechanisms/evm/batch_settlement/client/refund.py | 67 | CODE | |
| LOW | python/x402/mechanisms/evm/exact/permit2_utils.py | 327 | CODE | |
| LOW | python/x402/mechanisms/evm/exact/permit2_utils.py | 661 | CODE | |
| LOW | python/x402/mechanisms/tvm/provider.py | 448 | CODE | |
| LOW | python/x402/mechanisms/tvm/provider.py | 533 | CODE | |
| LOW | python/x402/mechanisms/tvm/provider.py | 594 | CODE | |
| LOW | python/x402/mechanisms/tvm/provider.py | 597 | CODE | |
| LOW | python/x402/mechanisms/tvm/signers.py | 574 | CODE | |
| LOW | python/x402/mechanisms/tvm/streaming.py | 324 | CODE | |
| LOW | python/x402/mechanisms/tvm/streaming.py | 372 | CODE | |
| LOW | python/x402/mechanisms/tvm/exact/settlement_batcher.py | 110 | CODE | |
| LOW | python/x402/tests/conftest.py | 24 | CODE | |
| LOW | python/x402/mcp/server.py | 49 | CODE | |
| LOW | python/x402/mcp/server.py | 98 | CODE | |
| LOW | python/x402/mcp/server.py | 113 | CODE | |
| LOW | python/x402/mcp/utils.py | 136 | CODE | |
| LOW | python/x402/extensions/sign_in_with_x/hooks.py | 66 | CODE | |
| LOW | python/x402/extensions/sign_in_with_x/hooks.py | 77 | CODE | |
| LOW | python/x402/extensions/builder_code/cbor.py | 124 | CODE | |
| LOW | python/x402/extensions/bazaar/server.py | 136 | CODE | |
| LOW | python/x402/extensions/bazaar/facilitator.py | 537 | CODE | |
| LOW | python/x402/http/x402_http_server.py | 82 | CODE | |
| LOW | python/x402/http/x402_http_server.py | 448 | CODE | |
| LOW | python/x402/http/facilitator_client.py | 97 | CODE | |
| LOW | python/x402/http/x402_http_server_base.py | 136 | CODE | |
| LOW | python/x402/http/middleware/fastapi.py | 166 | CODE | |
| LOW | python/x402/http/middleware/fastapi.py | 232 | CODE | |
| LOW | python/x402/http/middleware/flask.py | 314 | CODE | |
| LOW | python/x402/http/middleware/__init__.py | 31 | CODE | |
| LOW | python/x402/http/middleware/_bazaar_utils.py | 15 | CODE | |
| LOW | examples/python/clients/mcp-chatbot/main.py | 128 | CODE | |
| LOW | examples/python/servers/payment-identifier/main.py | 137 | CODE | |
| LOW | scripts/prepare-typescript-release.py | 228 | CODE | |
| LOW | scripts/prepare-go-release.py | 245 | CODE | |
| LOW | scripts/prepare-python-release.py | 226 | CODE | |
| LOW | e2e/clients/mcp-python/main.py | 35 | CODE | |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/src/x402/flask/middleware.py | 292 | # Check if response is successful (2xx status code) | COMMENT |
| LOW | python/x402/server.py | 389 | # Check if verify/settle methods are coroutine functions (async) | COMMENT |
| LOW⚡ | python/x402/server_base.py | 376 | # Check if any facilitator supports this network/scheme via wildcard pattern | COMMENT |
| LOW⚡ | python/x402/server_base.py | 382 | # Check if the kind's network is a wildcard that matches | COMMENT |
| LOW | python/x402/server_base.py | 1171 | # Check if verification failed | COMMENT |
| LOW | python/x402/server_base.py | 1376 | # Check if settlement failed | COMMENT |
| LOW | python/x402/facilitator_base.py | 279 | # Check if network matches | COMMENT |
| LOW | python/x402/facilitator_base.py | 299 | # Check if network matches | COMMENT |
| LOW | python/x402/facilitator_base.py | 429 | # Check if verification failed | COMMENT |
| LOW | python/x402/facilitator_base.py | 536 | # Check if settlement failed | COMMENT |
| LOW | python/x402/mechanisms/svm/utils.py | 271 | # Check if this is a token program instruction | COMMENT |
| LOW | python/x402/mechanisms/svm/utils.py | 308 | # Check if this is a token program instruction | COMMENT |
| LOW | python/x402/mcp/client_async.py | 166 | # Check if this is a payment required response | COMMENT |
| LOW | python/x402/mcp/client_async.py | 206 | # Check if payment is approved | COMMENT |
| LOW | python/x402/mcp/utils.py | 317 | # Check if this is a 402 payment required error | COMMENT |
| LOW | python/x402/extensions/bazaar/v1/facilitator.py | 162 | # Check if outputSchema exists and has the expected structure | COMMENT |
| LOW | python/x402/extensions/bazaar/v1/facilitator.py | 168 | # Check if the endpoint is marked as discoverable | COMMENT |
| LOW⚡ | python/x402/http/x402_http_server.py | 367 | # Check if the result is a coroutine or future (async) | COMMENT |
| LOW | python/x402/http/x402_http_server.py | 595 | # Check if the result is a coroutine (async) - not supported | COMMENT |
| LOW | python/x402/http/x402_http_server_base.py | 144 | # Check if it's a single route config dict (has "accepts" key) | COMMENT |
| LOW | python/x402/http/clients/httpx.py | 123 | # Check if already a retry (via request extensions) | COMMENT |
| LOW | python/x402/http/clients/requests.py | 108 | # Check if this is already a retry (per-request state via header) | COMMENT |
| LOW | python/x402/http/middleware/fastapi.py | 249 | # Check if route requires payment (before initialization) | COMMENT |
| LOW | python/x402/http/middleware/flask.py | 340 | # Check if route requires payment | COMMENT |
| LOW | python/x402/http/middleware/flask.py | 422 | # Check if successful response | COMMENT |
| LOW | examples/python/facilitator/advanced/bazaar.py | 279 | # Check if this was an abort from hook | COMMENT |
| LOW | examples/python/facilitator/advanced/all_networks.py | 214 | # Check if this was an abort from hook | COMMENT |
| LOW | examples/python/facilitator/basic/main.py | 180 | # Check if this was an abort from hook | COMMENT |
| LOW | .github/workflows/publish_npm_scoped_x402_mcp.yml | 50 | # Check if version is a prerelease (contains -alpha, -beta, -rc, etc.) | COMMENT |
| LOW | e2e/setup.sh | 134 | # Check if component has install.sh or build.sh | COMMENT |
| LOW | e2e/clients/httpx/main.py | 132 | # Set timeout to 30 seconds to handle busy servers during test runs | COMMENT |
| LOW | e2e/legacy/clients/httpx/main.py | 29 | # Set timeout to 30 seconds to handle busy servers during test runs | COMMENT |
| LOW | e2e/facilitators/python/main.py | 397 | # Check if this was an abort from hook | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| MEDIUM⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| LOW | python/legacy/src/x402/clients/httpx.py | 25 | # If this is not a 402, just return the response | COMMENT |
| LOW | python/legacy/src/x402/clients/httpx.py | 29 | # If this is a retry response, just return it | COMMENT |
| MEDIUM⚡ | …sts/integrations/test_evm_batch_settlement_extended.py | 305 | # HTTP server harness (Flask + WSGI in a thread) | COMMENT |
| LOW⚡ | examples/python/servers/mcp/simple.py | 106 | # Paid tool - just call the bridge with args + context | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| MEDIUM | …typescript/servers/advanced/custom-money-definition.ts | 42 | // NOTE: Wrapped XDAI is not an EIP-3009 complaint token, and would fail the current ExactEvm implementation. Th | COMMENT |
| MEDIUM | …ples/typescript/servers/offer-receipt/eip712-signer.ts | 13 | * This is a simple implementation for demonstration purposes. | COMMENT |
| MEDIUM | examples/typescript/servers/offer-receipt/jws-signer.ts | 13 | * This is a simple implementation for demonstration purposes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 85 | Curated third-party SDKs, extensions, and facilitators are listed in the [Developer Tools docs](https://docs.x402.org/de | CODE |
| MEDIUM | specs/transports-v2/a2a.md | 304 | - [A2A x402 Extension Specification](https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.1/spec.md) | CODE |
| MEDIUM | specs/transports-v1/a2a.md | 288 | - [A2A x402 Extension Specification](https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.1/spec.md) | CODE |
| MEDIUM | docs/dev-tools/facilitators.md | 30 | | [Polygon Facilitator](https://docs.polygon.technology/payment-services/agentic-payments/x402/intro/) | Production-grad | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/legacy/src/x402/flask/middleware.py | 80 | CODE | |
| LOW | python/legacy/src/x402/clients/base.py | 36 | CODE | |
| LOW | python/legacy/src/x402/fastapi/middleware.py | 33 | CODE | |
| LOW | python/x402/tests/unit/mechanisms/evm/test_permit2.py | 43 | CODE | |
| LOW | …hon/x402/tests/unit/mechanisms/evm/test_facilitator.py | 186 | CODE | |
| LOW | …402/tests/unit/mechanisms/evm/test_upto_facilitator.py | 43 | CODE | |
| LOW | …402/tests/unit/mechanisms/evm/test_upto_facilitator.py | 129 | CODE | |
| LOW | python/x402/tests/unit/mechanisms/tvm/test_codec.py | 57 | CODE | |
| LOW | python/x402/tests/unit/mechanisms/tvm/fakes.py | 55 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agents/skills/contributing/SKILL.md | 37 | Follow the repository AI-assisted contribution policy in [CONTRIBUTING.md](../../CONTRIBUTING.md#ai-assisted-contributio | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | python/legacy/src/x402/svm_paywall_template.py | 2 | SVM_PAYWALL_TEMPLATE = '<!DOCTYPE html><html lang="en"><head>\n <meta charset="UTF-8">\n <meta name="viewp | CODE |
| LOW | …/concordium/test/integrations/exact-concordium.test.ts | 1272 | url: "https://example.com/premium-fake-token", | CODE |
| LOW | typescript/packages/extensions/src/bazaar/README.md | 113 | name: "John Doe", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/x402/tests/unit/http/clients/test_httpx.py | 196 | async def handle_request(req): | CODE |