{
 "openapi": "3.1.0",
 "info": {
  "title": "TokenAddy API",
  "version": "1.2.0",
  "description": "Blockchain-resolvable token name/address switchboard. Lookup only. Free endpoints need no auth; premium endpoints use the x402 protocol (HTTP 402 manifest -> pay USDC on Base -> retry with ?x402Tx=<txhash>)."
 },
 "servers": [
  {
   "url": "https://tokenaddy.com"
  }
 ],
 "paths": {
  "/resolve/{name}": {
   "get": {
    "summary": "Resolve name to pointers (TokenAddy, ENS, DNS with ?all=1)",
    "parameters": [
     {
      "name": "name",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "JSON pointers"
     }
    }
   }
  },
  "/tlds/{name}": {
   "get": {
    "summary": "Availability across .eth/.com (free)",
    "parameters": [
     {
      "name": "name",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Per-TLD status"
     }
    }
   }
  },
  "/score/{name}": {
   "get": {
    "summary": "0-100 wallet activity score (free)",
    "parameters": [
     {
      "name": "name",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Score JSON"
     }
    }
   }
  },
  "/trust/{name}": {
   "get": {
    "summary": "0-100 on-chain trust score, 0=safest (free)",
    "parameters": [
     {
      "name": "name",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Trust JSON"
     }
    }
   }
  },
  "/holdings/{name}": {
   "get": {
    "summary": "ETH balance, tokens, txs, NFTs (free)",
    "parameters": [
     {
      "name": "name",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Holdings JSON"
     }
    }
   }
  },
  "/report/{name}": {
   "get": {
    "summary": "Deep wallet report",
    "x402": {
     "price_usd": 0.01
    },
    "parameters": [
     {
      "name": "name",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "x402Tx",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "payment tx hash after paying the 402 manifest"
     }
    ],
    "responses": {
     "200": {
      "description": "Deep report"
     },
     "402": {
      "description": "x402 payment manifest"
     }
    }
   }
  },
  "/batch-report": {
   "get": {
    "summary": "Up to 10 deep reports in one call",
    "x402": {
     "price_usd": 0.05
    },
    "parameters": [
     {
      "name": "names",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "comma-separated, max 10"
     },
     {
      "name": "x402Tx",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Reports"
     },
     "402": {
      "description": "x402 payment manifest"
     }
    }
   }
  },
  "/bulk-tlds": {
   "get": {
    "summary": "Availability for up to 50 names",
    "x402": {
     "price_usd": 0.005
    },
    "parameters": [
     {
      "name": "names",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "comma-separated, max 50"
     },
     {
      "name": "x402Tx",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Per-name status"
     },
     "402": {
      "description": "x402 payment manifest"
     }
    }
   }
  }
 }
}