{
 "version": 1,
 "name": "PGA Agent: EVM wallet facts, Base token checks and company profiles",
 "description": "Pay-per-call factual endpoints paid in USDC on Base with x402: wallet facts (account type, age, activity, native and USDC balances, tokens held, contracts created) on Base, Ethereum and OP Mainnet (base-, ethereum-, optimism-wallet-facts, 0.007 each), base-token-facts (0.01), base-token-safety (0.01: purchase/resale simulation, taxes, LP lock, holders, owner powers) and company-from-domain (0.03: company profile from its own website, no personal data). Token and wallet answers carry timestamped sources and the notice 'information, not investment advice'. base-new-tokens and base-gas-now were retired on 2026-10-04 (HTTP 410). Operated by an AI agent for PGA WEBCORPO (France).",
 "operator": {
  "name": "PGA WEBCORPO (France), run by an AI agent",
  "email": "contact@audit-site-web.pga-agent.fr",
  "legal": "https://audit-site-web.pga-agent.fr/mentions-legales"
 },
 "payment": {
  "protocol": "x402",
  "scheme": "exact",
  "network": "base",
  "chain_id": 8453,
  "asset": "USDC",
  "asset_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
 },
 "openapi": "https://audit-site-web.pga-agent.fr/openapi.json",
 "llms": "https://audit-site-web.pga-agent.fr/llms.txt",
 "mcp": {
  "url": "https://audit-site-web.pga-agent.fr/mcp",
  "transport": "streamable-http",
  "payment": "x402 in _meta"
 },
 "resources": [
  "https://audit-site-web.pga-agent.fr/api/base-token-facts",
  "https://audit-site-web.pga-agent.fr/api/base-wallet-facts",
  "https://audit-site-web.pga-agent.fr/api/ethereum-wallet-facts",
  "https://audit-site-web.pga-agent.fr/api/optimism-wallet-facts",
  "https://audit-site-web.pga-agent.fr/api/base-token-safety",
  "https://audit-site-web.pga-agent.fr/api/company-from-domain",
  "https://audit-site-web.pga-agent.fr/api/uuid",
  "https://audit-site-web.pga-agent.fr/api/utc-time",
  "https://audit-site-web.pga-agent.fr/api/random"
 ],
 "items": [
  {
   "id": "base-token-facts",
   "resource": "https://audit-site-web.pga-agent.fr/api/base-token-facts",
   "method": "GET",
   "price_usd": "0.01",
   "summary": "Facts about a Base token contract (0.01 USDC per call via x402)",
   "description": "Paid with x402: a call without payment returns 402 with the payment terms in the PAYMENT-REQUIRED header and JSON body (0.01 USDC on Base). Replay the request with a PAYMENT-SIGNATURE (or X-PAYMENT) header. The answer is computed before payment is settled: an invalid address (400), an address without contract code (404) or an upstream failure (502) is never charged. Typical response time 3-12 s; results are cached 60 s.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token contract address on Base, 0x followed by 40 hex characters.",
      "required": true,
      "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object",
     "required": [
      "address",
      "chain",
      "chain_id",
      "token",
      "contract",
      "capabilities",
      "market",
      "holders",
      "summary",
      "sources",
      "generated_at",
      "disclaimer"
     ]
    },
    "example": {
     "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "chain": "base",
     "chain_id": 8453,
     "token": {
      "name": "USDC",
      "symbol": "USDC",
      "decimals": 6,
      "total_supply": "4371831479.035156",
      "total_supply_raw": "4371831479035156",
      "type": "ERC-20"
     },
     "contract": {
      "source_verified": true,
      "contract_name": "FiatTokenProxy",
      "compiler": "0.6.12+commit.27d51765",
      "language": "solidity",
      "created_block": 2797221,
      "created_at": "2023-08-18T18:36:29Z",
      "creator": "0x6aAFF8af0ae8017725312C388bA3745dfE91185B",
      "creation_tx": "0x8aa214f98bcf2984add809d10232135cccc4d6ab97d8477e66475d8bf68def34",
      "factory": null,
      "bytecode_size_bytes": 1852
     },
     "capabilities": {
      "basis": "verified ABI and source of the implementation 0x2Ce6311ddAE708829bc0784C967b7d77D19FD779",
      "mint": true,
      "mint_functions": [
       "mint"
      ],
      "pause": true,
      "pause_functions": [
       "pause",
       "unpause"
      ],
      "blacklist_or_freeze": true,
      "blacklist_functions": [
       "blacklist",
       "unBlacklist"
      ],
      "owner_functions": [
       "rescueERC20 (onlyRescuer)",
       "updateRescuer (onlyOwner)",
       "blacklist (onlyBlacklister)",
       "unBlacklist (onlyBlacklister)",
       "updateBlacklister (onlyOwner)",
       "mint (onlyMinters)"
      ],
      "privileged_roles": {
       "blacklister": "0x1f2e3A640175d20ac31ed523B6733B977173E277",
       "masterMinter": "0x2230393EDAD0299b7E7B59F20AA856cD1bEd52e1",
       "pauser": "0xD3571B3bc51CECFf49194AD67aFFFC648d5e07b4",
       "rescuer": "0x0000000000000000000000000000000000000000"
      },
      "owner": "0x3ABd6f64A422225E61E435baE41db12096106df7",
      "owner_renounced": false,
      "upgradeable_proxy": true,
      "proxy_type": "eip1967_oz",
      "proxy_implementation": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779",
      "proxy_admin": "0x4fc7850364958d97B4d3f5A08f79db2493f8cA44",
      "proxy_admin_owner": null,
      "proxy_beacon": null,
      "tax_on_purchase_percent": 0.0,
      "tax_on_sale_percent": 0.0,
      "tax_basis": "no fee or tax logic in the verified source",
      "names_reworded": false
     },
     "market": {
      "pairs": [
       {
        "dex": "aerodrome",
        "pair_address": "0x6cDcb1C4A4D1C3C6d054b27AC5B77e89eAFb971d",
        "quote_symbol": "AERO",
        "liquidity_usd": 41810074.25,
        "created_at": "2023-09-07T22:50:45Z",
        "url": "https://base.blockscout.com/address/0x6cDcb1C4A4D1C3C6d054b27AC5B77e89eAFb971d"
       },
       {
        "dex": "uniswap v3",
        "pair_address": "0x2dF380544B88AdB3ad0A94100dcC45fd705aAE2d",
        "quote_symbol": "XDP",
        "liquidity_usd": 1819974.79,
        "created_at": "2026-09-28T12:52:05Z",
        "url": "https://base.blockscout.com/address/0x2dF380544B88AdB3ad0A94100dcC45fd705aAE2d"
       }
      ],
      "pair_count": 30,
      "total_liquidity_usd": 47210362.79,
      "note": "the source lists at most 30 pairs; totals cover the listed pairs only"
     },
     "holders": {
      "count": 13042269,
      "top10_share_percent": null,
      "top10": []
     },
     "summary": "Source code is verified (FiatTokenProxy, compiler 0.6.12+commit.27d51765). Contract is an upgradeable proxy; implementation 0x2Ce6311ddAE708829bc0784C967b7d77D19FD779, admin 0x4fc7850364958d97B4d3f5A08f79db2493f8cA44. Owner is 0x3ABd6f64A422225E61E435baE41db12096106df7; the code lets privileged addresses mint new tokens, pause transfers and blacklist or freeze addresses. 13,042,269 holder addresses; DEX liquidity $47,210,363 across 30 pairs listed.",
     "unknown": {
      "holders.top10": "explorer did not return the holder list in time"
     },
     "sources": [
      {
       "name": "Base public RPC",
       "url": "https://mainnet.base.org",
       "fetched_at": "2026-10-03T12:05:47Z"
      },
      {
       "name": "Blockscout (verified source)",
       "url": "https://base.blockscout.com/api/v2/smart-contracts/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
       "fetched_at": "2026-10-03T12:05:48Z"
      },
      {
       "name": "Blockscout (token)",
       "url": "https://base.blockscout.com/api/v2/tokens/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
       "fetched_at": "2026-10-03T12:05:48Z"
      },
      {
       "name": "Blockscout + Base RPC (contract creation)",
       "url": "https://base.blockscout.com/api/v2/addresses/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
       "fetched_at": "2026-10-03T12:05:48Z"
      },
      {
       "name": "DexScreener (derived values only)",
       "url": "https://api.dexscreener.com/latest/dex/tokens/{address}",
       "fetched_at": "2026-10-03T12:05:48Z"
      }
     ],
     "generated_at": "2026-10-03T12:05:55Z",
     "disclaimer": "information, not investment advice"
    }
   }
  },
  {
   "id": "base-wallet-facts",
   "resource": "https://audit-site-web.pga-agent.fr/api/base-wallet-facts",
   "method": "GET",
   "price_usd": "0.007",
   "summary": "Facts about a Base address: age, activity, balances, tokens held (0.007 USDC per call via x402)",
   "description": "Account type (EOA or contract), first transaction and age, transaction count, ETH and USDC balances, top 10 ERC-20 tokens held (USD value when known), contracts created (the 10 latest seen in the recent outgoing activity; an exact count is not available from public sources and is returned as null with the reason). Paid with x402: a call without payment always returns 402 with the payment terms in the PAYMENT-REQUIRED header and JSON body (0.007 USDC on Base), whatever the parameters; replay the request with a PAYMENT-SIGNATURE (or X-PAYMENT) header. The answer is computed before payment is settled: an invalid parameter (400) or an upstream failure (502/503) is never charged. Facts only, information, not investment advice.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Wallet or contract address on Base, 0x followed by 40 hex characters.",
      "required": true,
      "example": "0x5932e2003d309d478Bc80F301faCc84e2BB2c605"
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object",
     "required": [
      "address",
      "chain",
      "chain_id",
      "type",
      "first_transaction",
      "transaction_count",
      "balances",
      "top_tokens",
      "contracts_created",
      "sources",
      "generated_at",
      "disclaimer"
     ]
    },
    "example": {
     "address": "0x5932e2003d309d478Bc80F301faCc84e2BB2c605",
     "chain": "base",
     "chain_id": 8453,
     "type": "eoa",
     "first_transaction": {
      "hash": "0x137da3f615d48250f014af700fdbe9b783790826d91cb9c70ac5c12614abfab6",
      "block": 52130648,
      "timestamp": "2026-10-03T18:04:03Z"
     },
     "age_days": 0,
     "transaction_count": 5,
     "transaction_count_basis": "account nonce (transactions sent), exact",
     "balances": {
      "eth": 0.00188731086285,
      "usdc": 0.0
     },
     "top_tokens": [],
     "token_count": 0,
     "contracts_created": {
      "count": null,
      "count_basis": "not available: the public indexer provides no counter of created contracts",
      "count_in_scanned_window": 1,
      "scanned": "last 50 outgoing transactions + last 50 outgoing internal transactions",
      "latest": [
       {
        "address": "0x9ff0E3B872687e560C031e3fbFd638629aC0CEd7",
        "block": 52130666,
        "timestamp": "2026-10-03T18:04:39Z"
       }
      ]
     },
     "sources": [
      {
       "name": "Base public RPC (eth_getCode, eth_getBalance, eth_getTransactionCount, eth_call)",
       "url": "https://mainnet.base.org",
       "fetched_at": "2026-10-03T18:07:35Z"
      },
      {
       "name": "Blockscout (Base)",
       "url": "https://base.blockscout.com",
       "fetched_at": "2026-10-03T18:07:35Z"
      }
     ],
     "generated_at": "2026-10-03T18:07:35Z",
     "disclaimer": "information, not investment advice",
     "top_tokens_note": "ERC-20 balances held, by known USD value then by amount; value_usd is null when no price is known"
    }
   }
  },
  {
   "id": "ethereum-wallet-facts",
   "resource": "https://audit-site-web.pga-agent.fr/api/ethereum-wallet-facts",
   "method": "GET",
   "price_usd": "0.007",
   "summary": "Facts about an address on Ethereum mainnet: age, activity, balances, tokens held (0.007 USDC per call via x402)",
   "description": "Address facts on Ethereum mainnet (chain id 1): account type (EOA or contract), first transaction and age, transaction count (account nonce), native ETH balance (balances.eth) and native USDC balance (balances.usdc, Circle contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48), top 10 ERC-20 tokens held (USD value when known), contracts created (the 10 latest seen in the recent outgoing activity; an exact count is not available from public sources and is returned as null with the reason). Sources: public Ethereum mainnet RPC and the public Blockscout indexer, each timestamped; when the indexer is unreachable, the indexer fields are null with a *_reason field and the RPC facts are still returned. Same response format as base-wallet-facts. Paid with x402: a call without payment always returns 402 with the payment terms in the PAYMENT-REQUIRED header and JSON body (0.007 USDC, paid on Base), whatever the parameters; replay the request with a PAYMENT-SIGNATURE (or X-PAYMENT) header. The answer is computed before payment is settled: an invalid parameter (400) or an upstream failure (502/503) is never charged. Facts only. Information, not investment advice.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Wallet or contract address on Ethereum mainnet (chain id 1), 0x followed by 40 hex characters.",
      "required": true,
      "example": "0x3fAB184622Dc19b6109349B94811493BF2a45362"
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object",
     "required": [
      "address",
      "chain",
      "chain_id",
      "type",
      "first_transaction",
      "transaction_count",
      "balances",
      "top_tokens",
      "contracts_created",
      "sources",
      "generated_at",
      "disclaimer"
     ]
    },
    "example": {
     "address": "0x3fAB184622Dc19b6109349B94811493BF2a45362",
     "chain": "ethereum",
     "chain_id": 1,
     "type": "eoa",
     "first_transaction": {
      "hash": "0x2814f03c51cad09458eccf1dd0a2c101732e47f8bf8bbcfe49ab4eddebea365b",
      "block": 10670814,
      "timestamp": "2020-08-16T11:28:16Z"
     },
     "age_days": 2248,
     "transaction_count": 1,
     "transaction_count_basis": "account nonce (transactions sent), exact",
     "balances": {
      "eth": 0.0250585021841,
      "usdc": 0.0
     },
     "top_tokens": [
      {
       "address": "0x514910771AF9Ca656af840dff83E8264EcF986CA",
       "name": "Chainlink",
       "symbol": "LINK",
       "balance": 0.5135614,
       "value_usd": 6.87145
      },
      {
       "address": "0xA2120b9e674d3fC3875f415A7DF52e382F141225",
       "name": "Automata",
       "symbol": "ATA",
       "balance": 0.1,
       "value_usd": 7.6027e-05
      },
      {
       "address": "0xc89B4a8a121Dd3E726fE7515e703936cF83e3350",
       "name": "Kper.network",
       "symbol": "KPER",
       "balance": 100.0,
       "value_usd": null
      }
     ],
     "token_count": 3,
     "contracts_created": {
      "count": null,
      "count_basis": "not available: the public indexer provides no counter of created contracts",
      "count_in_scanned_window": 1,
      "scanned": "last 50 outgoing transactions + last 50 outgoing internal transactions",
      "latest": [
       {
        "address": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
        "block": 10670819,
        "timestamp": "2020-08-16T11:28:57Z"
       }
      ]
     },
     "sources": [
      {
       "name": "Ethereum public RPC (eth_getCode, eth_getBalance, eth_getTransactionCount, eth_call)",
       "url": "https://ethereum-rpc.publicnode.com",
       "fetched_at": "2026-10-12T12:30:53Z"
      },
      {
       "name": "Blockscout (Ethereum)",
       "url": "https://eth.blockscout.com",
       "fetched_at": "2026-10-12T12:30:54Z"
      }
     ],
     "generated_at": "2026-10-12T12:30:54Z",
     "disclaimer": "information, not investment advice",
     "top_tokens_note": "ERC-20 balances held, by known USD value then by amount; value_usd is null when no price is known"
    }
   }
  },
  {
   "id": "optimism-wallet-facts",
   "resource": "https://audit-site-web.pga-agent.fr/api/optimism-wallet-facts",
   "method": "GET",
   "price_usd": "0.007",
   "summary": "Facts about an address on OP Mainnet (Optimism): age, activity, balances, tokens held (0.007 USDC per call via x402)",
   "description": "Address facts on OP Mainnet (Optimism) (chain id 10): account type (EOA or contract), first transaction and age, transaction count (account nonce), native ETH balance (balances.eth) and native USDC balance (balances.usdc, Circle contract 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85), top 10 ERC-20 tokens held (USD value when known), contracts created (the 10 latest seen in the recent outgoing activity; an exact count is not available from public sources and is returned as null with the reason). Sources: public OP Mainnet (Optimism) RPC and the public Blockscout indexer, each timestamped; when the indexer is unreachable, the indexer fields are null with a *_reason field and the RPC facts are still returned. Same response format as base-wallet-facts. Paid with x402: a call without payment always returns 402 with the payment terms in the PAYMENT-REQUIRED header and JSON body (0.007 USDC, paid on Base), whatever the parameters; replay the request with a PAYMENT-SIGNATURE (or X-PAYMENT) header. The answer is computed before payment is settled: an invalid parameter (400) or an upstream failure (502/503) is never charged. Facts only. Information, not investment advice.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Wallet or contract address on OP Mainnet (Optimism) (chain id 10), 0x followed by 40 hex characters.",
      "required": true,
      "example": "0x3fAB184622Dc19b6109349B94811493BF2a45362"
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object",
     "required": [
      "address",
      "chain",
      "chain_id",
      "type",
      "first_transaction",
      "transaction_count",
      "balances",
      "top_tokens",
      "contracts_created",
      "sources",
      "generated_at",
      "disclaimer"
     ]
    },
    "example": {
     "address": "0x3fAB184622Dc19b6109349B94811493BF2a45362",
     "chain": "optimism",
     "chain_id": 10,
     "type": "eoa",
     "first_transaction": {
      "hash": "0xa4e2cf66e8c28364c9fa44259d412f151c91ba2b02ea39cffddbb27a128b8c1d",
      "block": 169176,
      "timestamp": "2021-11-17T09:31:17Z"
     },
     "age_days": 1790,
     "transaction_count": 1,
     "transaction_count_basis": "account nonce (transactions sent), exact",
     "balances": {
      "eth": 0.043357632042,
      "usdc": 0.0
     },
     "top_tokens": [
      {
       "address": "0x88888888CCda9A4b85c531b4a18247FCe9F8abA5",
       "name": "OPTOPUS",
       "symbol": "OPT",
       "balance": 10000.0,
       "value_usd": null
      }
     ],
     "token_count": 1,
     "contracts_created": {
      "count": null,
      "count_basis": "not available: the public indexer provides no counter of created contracts",
      "count_in_scanned_window": 1,
      "scanned": "last 50 outgoing transactions + last 50 outgoing internal transactions",
      "latest": [
       {
        "address": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
        "block": 1381134,
        "timestamp": "2021-12-20T09:43:11Z"
       }
      ]
     },
     "sources": [
      {
       "name": "OP Mainnet (Optimism) public RPC (eth_getCode, eth_getBalance, eth_getTransactionCount, eth_call)",
       "url": "https://mainnet.optimism.io",
       "fetched_at": "2026-10-12T12:30:54Z"
      },
      {
       "name": "Blockscout (OP Mainnet (Optimism))",
       "url": "https://explorer.optimism.io",
       "fetched_at": "2026-10-12T12:30:56Z"
      }
     ],
     "generated_at": "2026-10-12T12:30:56Z",
     "disclaimer": "information, not investment advice",
     "top_tokens_note": "ERC-20 balances held, by known USD value then by amount; value_usd is null when no price is known"
    }
   }
  },
  {
   "id": "base-token-safety",
   "resource": "https://audit-site-web.pga-agent.fr/api/base-token-safety",
   "method": "GET",
   "price_usd": "0.01",
   "summary": "Technical check of a Base token: purchase/resale simulation, taxes, LP lock, holders, owner powers (0.01 USDC per call via x402)",
   "description": "Simulates a purchase then a resale of the token on its main DEX pool with eth_simulateV1 (Uniswap V2/V3, Aerodrome, Slipstream; nothing is sent on-chain) and reports whether the resale went through, the measured purchase and sale taxes and the revert reason; DEX liquidity and the share of LP tokens burned or held by known lockers (UNCX, Team Finance, PinkLock); holder count and top 10 holders with labels (pool, burn, locker, deployer, contract); contract powers (mint, pause, blacklist/freeze, owner and renouncement, upgradeable proxy and admin, verified source); age and creation transaction; the deployer and its other tokens; a list of technical signals, each with a severity (info, warning, critical). No aggregate figure: only the signal list. Values that cannot be measured are null with the reason in `unknown`. Results are cached per 30-block window (about 1 minute): typical answer under 3 s from cache, under 8 s cold. Paid with x402: a call without payment always returns 402 with the payment terms (0.01 USDC on Base), whatever the parameters; replay with a PAYMENT-SIGNATURE (or X-PAYMENT) header. The answer is computed before payment is settled: an invalid address (400), an address without token code (404) or an upstream failure (502) is never charged. Information, not investment advice.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "ERC-20 token contract address on Base, 0x followed by 40 hex characters. Aliases accepted: token, contract, token_address.",
      "required": true,
      "example": "0xE6d8F00044Bb75b0752066b3b1281742C76e2696"
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object",
     "required": [
      "address",
      "simulation",
      "signals",
      "severity_counts",
      "notice"
     ],
     "properties": {
      "address": {
       "type": "string"
      },
      "chain_id": {
       "const": 8453
      },
      "block_reference": {
       "type": "integer"
      },
      "cached": {
       "type": "boolean"
      },
      "token": {
       "type": "object",
       "description": "name, symbol, decimals, total_supply"
      },
      "simulation": {
       "type": "object",
       "description": "eth_simulateV1 purchase then resale on the main pool",
       "properties": {
        "status": {
         "enum": [
          "completed",
          "not_run"
         ]
        },
        "purchase_possible": {
         "type": [
          "boolean",
          "null"
         ]
        },
        "sale_possible": {
         "type": [
          "boolean",
          "null"
         ]
        },
        "purchase_tax_percent": {
         "type": [
          "number",
          "null"
         ]
        },
        "sale_tax_percent": {
         "type": [
          "number",
          "null"
         ]
        },
        "revert_reason": {
         "type": [
          "string",
          "null"
         ]
        },
        "pool": {
         "type": "object"
        }
       }
      },
      "liquidity": {
       "type": "object",
       "description": "main_pool_liquidity_usd, total_liquidity_usd, pool_count, lp{status, burned_percent, locked_percent, lockers, deployer_percent}"
      },
      "holders": {
       "type": "object",
       "description": "count, top10_share_percent, top10_share_excluding_pools_percent, top10[{address, share_percent, label}]"
      },
      "contract": {
       "type": "object",
       "description": "source_verified, mint, pause, blacklist_or_freeze, owner, owner_renounced, upgradeable_proxy, proxy_admin"
      },
      "age": {
       "type": "object",
       "description": "created_block, created_at, age_seconds, creation_tx"
      },
      "deployer": {
       "type": "object",
       "description": "address, is_contract, other_tokens{count, latest, without_liquidity_today}"
      },
      "signals": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "code": {
          "type": "string"
         },
         "severity": {
          "enum": [
           "info",
           "warning",
           "critical"
          ]
         },
         "detail": {
          "type": "string"
         }
        }
       }
      },
      "severity_counts": {
       "type": "object"
      },
      "unknown": {
       "type": "object"
      },
      "sources": {
       "type": "array"
      },
      "notice": {
       "type": "string"
      }
     }
    },
    "example": {
     "address": "0xE6d8F00044Bb75b0752066b3b1281742C76e2696",
     "chain": "base",
     "chain_id": 8453,
     "block_reference": 52175610,
     "generated_at": "2026-10-04T19:03:22Z",
     "cached": false,
     "token": {
      "name": "SHiB",
      "symbol": "SHiB",
      "decimals": 8,
      "total_supply": "100000000000",
      "type": "ERC-20"
     },
     "simulation": {
      "status": "completed",
      "purchase_possible": true,
      "sale_possible": false,
      "purchase_tax_percent": 0.0,
      "sale_tax_percent": null,
      "purchase_gas": 115142,
      "sale_gas": 35963,
      "revert_reason": "execution reverted: TransferHelper: TRANSFER_FROM_FAILED",
      "detail": "token transfer blocked by the contract (revert: execution reverted: TransferHelper: TRANSFER_FROM_FAILED)",
      "pool": {
       "address": "0xCA85F35139C684B2F5Aa35712C9C37140770b3C8",
       "dex": "Uniswap V2",
       "type": "uniswap-v2-style",
       "counter_token": "WETH",
       "liquidity_usd": null,
       "selected_by": "on-chain getPair/getPool liquidity, verified on-chain"
      },
      "amount_in": {
       "token": "WETH",
       "raw": "10000000000000000",
       "eth_wei_equivalent": "10000000000000000"
      },
      "received_vs_quote_raw": {
       "purchase": [
        "342726968186",
        "342726968186"
       ],
       "sale": [
        null,
        null
       ]
      },
      "method": "eth_simulateV1 (latest, state override): purchase, then resale of the full amount in the next simulated block"
     },
     "liquidity": {
      "main_pool": "0xCA85F35139C684B2F5Aa35712C9C37140770b3C8",
      "main_pool_liquidity_usd": 29166.05,
      "total_liquidity_usd": 0.0,
      "pool_count": 0,
      "lp": {
       "status": "measured",
       "pool": "0xCA85F35139C684B2F5Aa35712C9C37140770b3C8",
       "lp_total_supply_raw": "31622776601683793",
       "burned_percent": 0.0,
       "locked_percent": 0.0,
       "lockers": [],
       "deployer_percent": 100.0,
       "basis": "pool LP token balances read with eth_call: zero and 0x…dEaD addresses (minus the 1000-unit minimum liquidity of V2 pools) and known lockers (UNCX, Team Finance, PinkLock)"
      },
      "main_pool_liquidity_basis": "on-chain estimate: twice the counter-token reserve of the pool, valued with the WETH/USDC pool quote"
     },
     "holders": {
      "count": 3,
      "top10_share_percent": 99.9919,
      "top10_share_excluding_pools_percent": 99.99,
      "top10": [
       {
        "address": "0x26276e65a0C641D3Cc378B55FB7Af29395e1723E",
        "share_percent": 99.99,
        "label": "deployer"
       },
       {
        "address": "0xCA85F35139C684B2F5Aa35712C9C37140770b3C8",
        "share_percent": 0.0019,
        "label": "pool"
       },
       {
        "address": "0xc7995E9fa17951824a0119FccDd62151aaB96077",
        "share_percent": 0.0,
        "label": "contract"
       }
      ],
      "labels": "pool = DEX pool of this token; burn = zero or 0x…dEaD address; locker = known liquidity locker; deployer = address that created the token; contract = other smart contract"
     },
     "contract": {
      "source_verified": true,
      "contract_name": "SHiB",
      "mint": false,
      "mint_functions": [],
      "pause": false,
      "pause_functions": [],
      "blacklist_or_freeze": false,
      "blacklist_functions": [],
      "owner_functions": [
       "renounceOwnership (onlyOwner)",
       "transferOwnership (onlyOwner)",
       "actionPair (sender check in body)"
      ],
      "privileged_roles": {},
      "owner": "0x0000000000000000000000000000000000000000",
      "owner_renounced": true,
      "upgradeable_proxy": false,
      "proxy_type": null,
      "proxy_implementation": null,
      "proxy_admin": null,
      "proxy_admin_owner": null,
      "proxy_beacon": null,
      "basis": "verified ABI and source of the contract"
     },
     "age": {
      "created_block": 52109248,
      "created_at": "2026-10-03T06:10:43Z",
      "age_seconds": 132759,
      "creation_tx": "0x444361f63a07181528f3765cbd15962e67ee6caae62b0895b344515473c11e93"
     },
     "deployer": {
      "address": "0x26276e65a0C641D3Cc378B55FB7Af29395e1723E",
      "is_contract": false,
      "transaction_sender": "0x26276e65a0C641D3Cc378B55FB7Af29395e1723E",
      "note": "account with an EIP-7702 delegation (user account)",
      "other_tokens": {
       "count": 0,
       "latest": [],
       "without_liquidity_today": null,
       "liquidity_checked_for": 0,
       "basis": "contracts created by the deployer in its latest 50 transactions and internal transactions (Blockscout) plus tokens seen by our new-token feed, kept if they answer decimals() and totalSupply(); 'without liquidity' means under 100 USD of DEX liquidity listed today",
       "cached_at": "2026-10-04T18:55:20Z"
      }
     },
     "signals": [
      {
       "code": "SALE_SIMULATION_FAILED",
       "severity": "critical",
       "detail": "Simulated resale of the tokens failed: token transfer blocked by the contract (revert: execution reverted: TransferHelper: TRANSFER_FROM_FAILED)."
      },
      {
       "code": "LP_NOT_LOCKED",
       "severity": "warning",
       "detail": "Only 0.00% of the main pool LP tokens are burned or in a known locker; the rest can be withdrawn by their owners."
      },
      {
       "code": "TOP10_OVER_50",
       "severity": "warning",
       "detail": "The 10 largest addresses (excluding pools, burn addresses, lockers and the token contract) own 99.99% of supply."
      },
      {
       "code": "LIQUIDITY_UNDER_50K_USD",
       "severity": "info",
       "detail": "Main pool liquidity is about 29,166 USD."
      },
      {
       "code": "DEPLOYER_OWNS_LP",
       "severity": "info",
       "detail": "The deployer address owns 100.00% of the main pool LP tokens."
      },
      {
       "code": "DEPLOYER_IN_TOP10",
       "severity": "info",
       "detail": "The deployer address owns 99.99% of supply."
      },
      {
       "code": "HOLDER_COUNT_UNDER_100",
       "severity": "info",
       "detail": "3 addresses own this token."
      }
     ],
     "severity_counts": {
      "info": 4,
      "warning": 2,
      "critical": 1
     },
     "unknown": {
      "liquidity.pools": "no DEX pair listed for this token on Base",
      "simulation.sale_tax_percent": "not measured: resale step did not complete (token transfer blocked by the contract (revert: execution reverted: TransferHelper: TRANSFER_FROM_FAILED))"
     },
     "sources": [
      {
       "name": "Base public RPC",
       "url": "https://mainnet.base.org",
       "fetched_at": "2026-10-04T19:03:20Z"
      },
      {
       "name": "Blockscout (verified source)",
       "url": "https://base.blockscout.com/api/v2/smart-contracts/0xE6d8F00044Bb75b0752066b3b1281742C76e2696",
       "fetched_at": "2026-10-04T19:03:21Z"
      },
      {
       "name": "Blockscout (token)",
       "url": "https://base.blockscout.com/api/v2/tokens/0xE6d8F00044Bb75b0752066b3b1281742C76e2696",
       "fetched_at": "2026-10-04T19:03:21Z"
      },
      {
       "name": "Blockscout + Base RPC (contract creation)",
       "url": "https://base.blockscout.com/api/v2/addresses/0xE6d8F00044Bb75b0752066b3b1281742C76e2696",
       "fetched_at": "2026-10-04T19:03:21Z"
      },
      {
       "name": "DexScreener (derived values only)",
       "url": "https://api.dexscreener.com/latest/dex/tokens/{address}",
       "fetched_at": "2026-10-04T19:03:21Z"
      },
      {
       "name": "Blockscout (holders, cached up to 6 h)",
       "url": "https://base.blockscout.com/api/v2/tokens/0xE6d8F00044Bb75b0752066b3b1281742C76e2696/holders",
       "fetched_at": "2026-10-04T18:58:22Z"
      },
      {
       "name": "Base public RPC (eth_simulateV1)",
       "url": "https://mainnet.base.org",
       "fetched_at": "2026-10-04T19:03:22Z"
      },
      {
       "name": "Blockscout (deployer transactions) + DexScreener (derived liquidity only)",
       "url": "https://base.blockscout.com/address/0x26276e65a0C641D3Cc378B55FB7Af29395e1723E",
       "fetched_at": "2026-10-04T19:03:22Z"
      },
      {
       "name": "Base public RPC (LP token balances)",
       "url": "https://mainnet.base.org",
       "fetched_at": "2026-10-04T19:03:22Z"
      }
     ],
     "notice": "Information, not investment advice. Technical contract facts and simulation results only."
    }
   }
  },
  {
   "id": "company-from-domain",
   "resource": "https://audit-site-web.pga-agent.fr/api/company-from-domain",
   "method": "GET",
   "price_usd": "0.03",
   "summary": "Company identity & website facts from a domain: legal name, IDs, registered address, social pages, tech stack, audit signals (0.03 USDC per call via x402)",
   "description": "Reads at most a few public pages of the company's own website (home, contact, legal notice, about, plus robots.txt and sitemap.xml) and returns: company name and description; VAT number, SIREN and legal form when published; the registered office address published by the company (street hidden for a sole proprietorship); the URL of its contact page; company social pages; technologies detected (CMS, e-commerce, analytics, CDN…); website audit signals (HTTPS, HSTS, title, meta description, h1, canonical, sitemap, page weight, issues). No email address and no phone number is ever returned, even generic ones, and no person names. robots.txt is obeyed (user-agent PGA-Agent-Enrich, see https://audit-site-web.pga-agent.fr/bot) and anti-bot challenges are never bypassed. Results are cached 24 h per domain. Paid with x402: a call without payment always returns 402 with the payment terms (0.03 USDC on Base), whatever the parameters; replay with a PAYMENT-SIGNATURE (or X-PAYMENT) header. Any error (invalid domain, robots.txt refusal, unreachable site…) is returned without charge.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "domain": {
      "type": "string",
      "maxLength": 300,
      "description": "Company website domain or URL; only its host name is used. Aliases accepted: url, website, company_domain.",
      "required": true,
      "example": "plausible.io"
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object",
     "required": [
      "domain",
      "status",
      "notice"
     ],
     "properties": {
      "domain": {
       "type": "string"
      },
      "status": {
       "const": "ok"
      },
      "final_url": {
       "type": "string"
      },
      "name": {
       "type": [
        "string",
        "null"
       ]
      },
      "description": {
       "type": [
        "string",
        "null"
       ]
      },
      "address": {
       "type": [
        "object",
        "null"
       ],
       "description": "registered office address published by the company (street, postal_code, city, country_code)"
      },
      "contact_page": {
       "type": [
        "string",
        "null"
       ],
       "description": "URL of the company's contact page (no email or phone is returned)"
      },
      "company_ids": {
       "type": "object",
       "description": "vat_id, siren, legal_form when published"
      },
      "social": {
       "type": "object",
       "description": "linkedin, facebook, instagram, x, youtube, tiktok, pinterest, github (company pages)"
      },
      "technologies": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string"
         },
         "category": {
          "type": "string"
         },
         "version": {
          "type": "string"
         }
        }
       }
      },
      "audit_signals": {
       "type": "object",
       "description": "https, hsts, viewport, title, meta description, h1, canonical, sitemap, page weight, issues[]"
      },
      "robots_respected": {
       "const": true
      },
      "pages_read": {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      "sources": {
       "type": "object"
      },
      "fetched_at": {
       "type": "string"
      },
      "notice": {
       "type": "string"
      }
     }
    },
    "example": {
     "domain": "plausible.io",
     "status": "ok",
     "billable": true,
     "final_url": "https://plausible.io/",
     "name": "Plausible Analytics",
     "description": "Plausible is a lightweight and open-source Google Analytics alternative. Your website data is 100% yours and the privacy of your visitors is respected.",
     "address": null,
     "contact_page": "https://plausible.io/contact",
     "company_ids": {},
     "social": {
      "linkedin": "https://www.linkedin.com/company/plausible-analytics",
      "facebook": null,
      "instagram": null,
      "x": "https://x.com/PlausibleHQ",
      "youtube": null,
      "tiktok": null,
      "pinterest": null,
      "github": null
     },
     "technologies": [
      {
       "name": "Jekyll",
       "category": "static site",
       "version": "3.9.2"
      },
      {
       "name": "Plausible",
       "category": "analytics"
      }
     ],
     "audit_signals": {
      "https": true,
      "http_redirects_to_https": true,
      "hsts": false,
      "mobile_viewport": true,
      "title": "Plausible Analytics | Simple, privacy-friendly Google Analytics alternative",
      "title_length": 75,
      "meta_description": true,
      "meta_description_length": 151,
      "h1_count": 1,
      "h1_unique": true,
      "canonical": "https://plausible.io/",
      "lang": "en",
      "robots_txt": true,
      "sitemap": true,
      "page_weight_kb": 74.8,
      "page_truncated": false,
      "response_time_ms": 70,
      "json_ld": true,
      "open_graph": true,
      "noindex": false,
      "cms_version_exposed": null,
      "legal_notice_page": "https://plausible.io/imprint",
      "terms_link": true,
      "issues": [
       {
        "id": "no_hsts",
        "severity": "info",
        "detail": "No Strict-Transport-Security header."
       },
       {
        "id": "title_too_long",
        "severity": "info",
        "detail": "Title is 75 characters (over 65)."
       },
       {
        "id": "no_jsonld_organization",
        "severity": "info",
        "detail": "No schema.org Organization/LocalBusiness JSON-LD on the home page."
       }
      ]
     },
     "robots_respected": true,
     "pages_read": [
      "https://plausible.io/",
      "https://plausible.io/imprint",
      "https://plausible.io/contact",
      "https://plausible.io/about"
     ],
     "sources": {
      "website": "https://plausible.io/",
      "name": "meta:og:site_name",
      "description": "meta:description",
      "social": {
       "x": "https://plausible.io/",
       "linkedin": "https://plausible.io/"
      }
     },
     "fetched_at": "2026-10-04T19:26:06Z",
     "elapsed_ms": 746,
     "notice": "Public business information published by the company itself. No personal data, no email address and no phone number is returned.",
     "cached": false
    }
   }
  },
  {
   "id": "uuid",
   "resource": "https://audit-site-web.pga-agent.fr/api/uuid",
   "method": "GET",
   "price_usd": "0.005",
   "summary": "Random UUID v4, 1 to 100 per call (0.005 USDC per call via x402)",
   "description": "Returns one or more RFC 9562 version-4 UUIDs generated from the operating-system CSPRNG. Handy as a cheap, reliable endpoint to test an x402 payment flow end to end. Paid with x402: a call without payment always returns 402 with the payment terms (0.005 USDC on Base), whatever the parameters; replay with a PAYMENT-SIGNATURE (or X-PAYMENT) header. Invalid parameters return 400 without charge. Nothing is stored.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Number of UUIDs to return (1-100, default 1).",
      "required": false,
      "example": 1
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object"
    },
    "example": {
     "uuids": [
      "8d1d4f48-cb69-4b8d-b7f9-c04d19039702"
     ],
     "version": 4,
     "count": 1,
     "generated_at": "2026-10-06T18:02:42.898Z",
     "source": "operating-system CSPRNG (Python uuid4)"
    }
   }
  },
  {
   "id": "utc-time",
   "resource": "https://audit-site-web.pga-agent.fr/api/utc-time",
   "method": "GET",
   "price_usd": "0.005",
   "summary": "Current UTC time: ISO 8601, Unix seconds and ms, ISO week (0.005 USDC per call via x402)",
   "description": "Returns the current time in UTC from the server system clock: ISO 8601 with milliseconds, Unix timestamp in seconds and milliseconds, date, day of week, ISO week and day of year. No parameters. Handy as a cheap endpoint to test an x402 payment flow. Paid with x402: a call without payment always returns 402 with the payment terms (0.005 USDC on Base), whatever the parameters; replay with a PAYMENT-SIGNATURE (or X-PAYMENT) header. Invalid parameters return 400 without charge. Nothing is stored.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {}
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object"
    },
    "example": {
     "utc": "2026-10-06T18:02:42.898Z",
     "unix": 1791309762,
     "unix_ms": 1791309762898,
     "date": "2026-10-06",
     "day_of_week": "Tuesday",
     "iso_week": "2026-W41",
     "day_of_year": 279,
     "source": "server system clock (UTC)"
    }
   }
  },
  {
   "id": "random",
   "resource": "https://audit-site-web.pga-agent.fr/api/random",
   "method": "GET",
   "price_usd": "0.005",
   "summary": "Random integer in a range plus random hex bytes, from a CSPRNG (0.005 USDC per call via x402)",
   "description": "Returns a uniformly distributed random integer between min and max (inclusive) and a random hex string of the requested length, both from the operating-system CSPRNG (Python secrets). Not for gambling or lotteries. Paid with x402: a call without payment always returns 402 with the payment terms (0.005 USDC on Base), whatever the parameters; replay with a PAYMENT-SIGNATURE (or X-PAYMENT) header. Invalid parameters return 400 without charge. Nothing is stored.",
   "input": {
    "type": "http",
    "method": "GET",
    "queryParams": {
     "min": {
      "type": "integer",
      "description": "Lowest integer, inclusive (default 0).",
      "required": false,
      "example": 1
     },
     "max": {
      "type": "integer",
      "description": "Highest integer, inclusive (default 4294967295).",
      "required": false,
      "example": 100
     },
     "bytes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 64,
      "description": "Length of the random hex string in bytes (1-64, default 16).",
      "required": false,
      "example": 16
     }
    }
   },
   "output": {
    "type": "json",
    "schema": {
     "type": "object"
    },
    "example": {
     "integer": 64,
     "min": 1,
     "max": 100,
     "hex": "63abe50ad5694f366aaa5272b4dfb5f9",
     "bytes": 16,
     "generated_at": "2026-10-06T18:02:42.898Z",
     "source": "operating-system CSPRNG (Python secrets)"
    }
   }
  }
 ],
 "notice": "Information, not investment advice. Facts only: no buy, sell or hold opinion, no rating, no price prediction."
}