{
  "name": "Fresh402",
  "status": "ok",
  "version": "3.0.2",
  "normalizer_version": 2,
  "blockchain": {
    "tools": [
      {
        "id": "contract_watch",
        "tool": "fresh402_contract_watch",
        "network": "eip155:8453",
        "prepaid_requires_service_grant": true,
        "quote_endpoint": "/v3/prepaid/quote/contract_watch"
      },
      {
        "id": "wallet_watch",
        "tool": "fresh402_wallet_watch",
        "network": "eip155:8453",
        "prepaid_requires_service_grant": true,
        "quote_endpoint": "/v3/prepaid/quote/wallet_watch"
      },
      {
        "id": "token_facts",
        "tool": "fresh402_token_facts",
        "network": "eip155:8453",
        "prepaid_requires_service_grant": true,
        "quote_endpoint": "/v3/prepaid/quote/token_facts"
      }
    ],
    "scope": "Bounded finalized Base single-provider observations; no full history or safety score."
  },
  "pricing": {
    "contract_watch": "$0.010000 USDC",
    "wallet_watch": "$0.020000 USDC",
    "token_facts": "$0.010000 USDC",
    "register": "free",
    "check": "$0.005 USDC",
    "extract": "$0.01 USDC",
    "smart_diff": "$0.015 USDC",
    "openapi_contract_diff": "$0.020 USDC"
  },
  "endpoints": {
    "contract_watch": "POST /v3/contract-watch",
    "wallet_watch": "POST /v3/wallet-watch",
    "token_facts": "POST /v3/token-facts",
    "customer_account": "GET /account",
    "extract": "POST /v2/extract",
    "smart_diff": "POST /v2/smart-diff",
    "openapi_contract_diff": "POST /v2/openapi-contract-diff",
    "openapi": "GET /openapi.json",
    "register": "POST /v1/register",
    "check": "POST /v1/check",
    "history": "GET /v1/history?watch_id=w_... or ?url=https://example.com",
    "diff": "GET /v1/diff?watch_id=w_... or ?url=https://example.com",
    "stats": "GET /v1/stats",
    "mcp": "POST /mcp"
  },
  "features": [
    "bounded web extraction without JavaScript",
    "structural JSON and HTML Smart Diff",
    "free baseline registration",
    "persistent watch_id",
    "caller previous_hash comparison",
    "HTML selector scoping",
    "HTML ignore selectors",
    "canonical JSON monitoring",
    "JSON Pointer ignore paths with wildcard support",
    "inline deterministic diff",
    "shared freshness cache",
    "ETag and Last-Modified revalidation",
    "bounded snapshot retention"
  ],
  "prepaid_packages": {
    "enabled": true,
    "currency": "USDC",
    "network": "eip155:8453",
    "billing_model": "one-time prepaid credits",
    "credits_expire": false,
    "plans": [
      {
        "id": "candidate-starter-v3",
        "name": "Starter",
        "price_usdc": "2.50",
        "amount_atomic": 2500000,
        "credits": 1000
      },
      {
        "id": "starter-all-services-v4",
        "name": "Starter (all services)",
        "price_usdc": "2.50",
        "amount_atomic": 2500000,
        "credits": 1000
      },
      {
        "id": "candidate-developer-v3",
        "name": "Developer",
        "price_usdc": "15.00",
        "amount_atomic": 15000000,
        "credits": 10000
      },
      {
        "id": "developer-all-services-v4",
        "name": "Developer (all services)",
        "price_usdc": "15.00",
        "amount_atomic": 15000000,
        "credits": 10000
      }
    ],
    "credit_costs": {
      "check": 2,
      "extract": 3,
      "smart_diff": 4,
      "openapi_contract_diff": 5
    },
    "all_services_terms_endpoint": "/v3/prepaid/all-services",
    "account_url": "https://api.fresh402.com/account",
    "plans_endpoint": "/v2/prepaid/plans",
    "agent_guide": "https://github.com/kirillradchenko96/fresh402/blob/main/docs/AGENT_PREPAID.md",
    "provisional": {
      "enabled": true,
      "starter_max": 50,
      "developer_max": 100,
      "aggregate_max": 500,
      "minimum_l2_confirmations": 3,
      "independent_corroboration": true,
      "not_finality": true,
      "policy": "New eligible purchases only; evidence freshness, finite verification and account/payer/project caps may freeze or deny early access. Full entitlement requires finalized settlement."
    },
    "prepaid_mcp": {
      "credential_header": "X-Fresh402-API-Key",
      "metadata_key": "fresh402/prepaid",
      "required_metadata": [
        "idempotency_key",
        "tariff_version",
        "max_credits"
      ],
      "mixed_x402": false
    }
  },
  "mpp_payments": {
    "enabled": true,
    "method": "evm",
    "intent": "charge",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "credential_type": "authorization",
    "prepaid_purchases": true,
    "guide": "https://github.com/kirillradchenko96/fresh402/blob/main/docs/MPP.md",
    "mainnet_settlement_newly_validated": false
  },
  "circle_gateway": {
    "enabled": false,
    "protocol": "x402",
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "authorization_domain": "GatewayWalletBatched",
    "prepaid_purchases": false,
    "delivery": "after Gateway confirmed or completed transfer; pending batch returns 409",
    "settlement": "Circle Gateway balance; transfer UUID is not an onchain transaction hash",
    "mainnet_settlement_validated": false,
    "guide": "https://github.com/kirillradchenko96/fresh402/blob/main/docs/CIRCLE_GATEWAY.md"
  },
  "free_trial": {
    "enabled": true,
    "model": "one-time per eligible wallet; no funding required",
    "credential_header": "X-Fresh402-Trial-Key",
    "idempotency_header": "Idempotency-Key",
    "allowances": {
      "check": 20,
      "extract": 10,
      "smart_diff": 5,
      "openapi_diff": 3
    },
    "account_url": "https://api.fresh402.com/trial",
    "quota_endpoint": "/v2/trial/quota",
    "payments_automatic": false
  },
  "machine_trial": {
    "enabled": true,
    "model": "one-time bounded machine trial; wallet control is not unique-agent identity",
    "allowances": {
      "check": 2,
      "extract": 1,
      "smart_diff": 1,
      "openapi_diff": 1,
      "contract_watch": 1,
      "wallet_watch": 1,
      "token_facts": 1
    },
    "challenge_endpoint": "/v3/agent-trial/challenge",
    "claim_endpoint": "/v3/agent-trial/claim",
    "quota_endpoint": "/v3/agent-trial/quota",
    "credential_header": "X-Fresh402-Trial-Key",
    "idempotency_header": "Idempotency-Key",
    "credential_max_lifetime_seconds": 604800,
    "captcha_required": false,
    "wallet_signature": "EIP-191 personal_sign of the exact returned challenge",
    "payments_automatic": false,
    "shared_limits": {
      "work_units_day": 32,
      "work_units_month": 64,
      "work_units_network_day": 8,
      "web_runtime_reservation_ms_day": 360000,
      "web_runtime_reservation_ms_month": 1200000,
      "blockchain_rpc_reservation_day": 18,
      "blockchain_units_month": 18000
    },
    "warning": "Allowances are maximum entitlements, not reserved capacity. Shared admission may return 429 before an allowance is exhausted. No payment fallback."
  }
}