{
  "openapi": "3.0.1",
  "info": {
    "title": "EVM Wallet & Token Balances (ETH, Base, ARB, OP, Polygon)",
    "description": "Bulk-read native and ERC-20 token balances, nonce, account type (EOA, contract, EIP-7702 delegated) and verified ENS names for up to 1,000 wallets across Ethereum, Base, Arbitrum, Optimism and Polygon. Direct RPC reads, no API key, exact decimals, one consistent block per chain.",
    "version": "0.1",
    "x-build-id": "PVprnR2kmD4bqLz49"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tanod~evm-wallet-reader/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tanod-evm-wallet-reader",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/tanod~evm-wallet-reader/runs": {
      "post": {
        "operationId": "runs-sync-tanod-evm-wallet-reader",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/tanod~evm-wallet-reader/run-sync": {
      "post": {
        "operationId": "run-sync-tanod-evm-wallet-reader",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "addresses": {
            "title": "Wallet addresses or ENS names",
            "maxItems": 1000,
            "type": "array",
            "description": "0x addresses (any case; mixed case must have a valid checksum) or ENS names like vitalik.eth. Up to 1,000 per run; duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "chains": {
            "title": "Chains",
            "type": "array",
            "description": "One output row per address per chain.",
            "items": {
              "type": "string",
              "enum": [
                "ethereum",
                "base",
                "arbitrum",
                "optimism",
                "polygon"
              ],
              "enumTitles": [
                "Ethereum",
                "Base",
                "Arbitrum One",
                "OP Mainnet",
                "Polygon PoS"
              ]
            },
            "default": [
              "ethereum",
              "base"
            ]
          },
          "includeCommonTokens": {
            "title": "Include common tokens",
            "type": "boolean",
            "description": "Check the major stablecoins and wrapped assets on each chain (USDC, USDT, DAI, WETH, WBTC/cbBTC, ARB, OP, WPOL...).",
            "default": true
          },
          "tokens": {
            "title": "Extra ERC-20 tokens",
            "maxItems": 100,
            "type": "array",
            "description": "Token contract addresses to check. Use chain:0x... (e.g. base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) for one chain, or a bare 0x... for every selected chain. Symbol and decimals are read on-chain. Up to 50 per chain.",
            "items": {
              "type": "string"
            }
          },
          "hideZeroBalances": {
            "title": "Hide zero token balances",
            "type": "boolean",
            "description": "Only list tokens the wallet actually holds.",
            "default": true
          },
          "resolveEns": {
            "title": "Resolve ENS",
            "type": "boolean",
            "description": "Resolve ENS names to addresses, and look up each address's primary ENS name (only reported when it resolves back to the same address).",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel reads",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Capped at 10.",
            "default": 5
          },
          "maxRequestsPerSecondPerChain": {
            "title": "RPC requests per second, per chain",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "Politeness limit towards the RPC endpoints (each request is a batch of up to 10 reads). Capped at 25.",
            "default": 5
          },
          "rpcUrls": {
            "title": "Your own RPC endpoints (optional)",
            "type": "object",
            "description": "Use your own HTTPS RPC endpoints first, e.g. {\"ethereum\": [\"https://...\"], \"base\": [\"https://...\"]}. Public endpoints remain as fallback. Note: run inputs are visible in your run history."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}