# Bloklake > Historical blockchain data over HTTP: filter logs, transactions and blocks across any block range and get them back as Apache Arrow or JSON. - [Bloklake](https://docs.bloklake.com/index.md): Historical and live blockchain data over HTTP. Filter logs, transactions and blocks across any block range and get exactly the columns you ask for, as Apache Arrow or JSON. - [Quickstart](https://docs.bloklake.com/quickstart.md): Create an account, get an API key and run your first query. - [Client libraries](https://docs.bloklake.com/clients.md): Official clients for TypeScript/Node.js, Python and Rust: typed queries in, JSON rows out, Arrow on the wire. - [Core concepts](https://docs.bloklake.com/concepts.md): Everything you need to know to use Bloklake well, on one page. - [Chains](https://docs.bloklake.com/chains/overview.md): The chains Bloklake serves, their URLs, and what differs between them. - [Ethereum](https://docs.bloklake.com/chains/ethereum.md): Ethereum mainnet: URLs, finality and fields. - [Robinhood Chain](https://docs.bloklake.com/chains/robinhood-chain.md): Robinhood Chain (an Arbitrum Orbit L2): URLs, finality, Arbitrum fields and quirks. - [Request body](https://docs.bloklake.com/querying/request-body.md): Every key of a query, what it does, and the rules the server enforces. - [Filters](https://docs.bloklake.com/querying/filters.md): Select logs by contract and topics, and transactions by sender, recipient, function, status and type. - [Selecting fields](https://docs.bloklake.com/querying/fields.md): Choose exactly the columns you need. Fewer columns means smaller, faster and cheaper responses. - [Blocks](https://docs.bloklake.com/querying/blocks.md): When block rows come back, and how to sample them. - [Joining logs to transactions](https://docs.bloklake.com/querying/join-transactions.md): Get the transaction behind every matched log in the same request. - [Pagination](https://docs.bloklake.com/querying/pagination.md): Read any range, however large, with the next_block loop. - [Sets](https://docs.bloklake.com/querying/sets.md): Upload a large list of addresses or topics once and refer to it by id. - [Prepared queries](https://docs.bloklake.com/querying/prepared-queries.md): Send a filter once, then re-run it by id over different ranges. - [Finality and reorgs](https://docs.bloklake.com/querying/finality-and-reorgs.md): Which rows can still change, and how to read near the head safely. - [Fields a chain doesn't have](https://docs.bloklake.com/querying/unavailable-fields.md): Why some columns are always null on some chains, and how to tell them from real nulls. - [Arrow vs JSON](https://docs.bloklake.com/responses/arrow-vs-json.md): Two response formats for the same rows. Which one to use, and what each costs. - [Reading Arrow](https://docs.bloklake.com/responses/reading-arrow.md): Decode /query responses in Python, TypeScript and Rust, with complete, tested clients. - [The JSON format](https://docs.bloklake.com/responses/json.md): What /query/json returns, and how each type of value is written. - [Response metadata](https://docs.bloklake.com/responses/metadata.md): The range a response covers, where to continue, the chain head and finality. - [Data types](https://docs.bloklake.com/responses/data-types.md): How hashes, addresses, amounts and nested fields are encoded in Arrow and JSON, with conversion helpers. - [Index ERC-20 transfers](https://docs.bloklake.com/guides/erc20-transfers.md): Backfill every transfer of a token into Parquet, decoded, then query it with DuckDB. - [Wallet activity](https://docs.bloklake.com/guides/wallet-activity.md): Everything a set of wallets sent and received: transactions and token transfers, in one request. - [Factory contracts](https://docs.bloklake.com/guides/factory-contracts.md): Index contracts a factory creates over time, such as every pool of a DEX, with growing sets. - [Following the head](https://docs.bloklake.com/guides/follow-the-head.md): Keep a dataset up to date as new blocks arrive, correctly through reorgs, without wasting requests. - [Decoding logs](https://docs.bloklake.com/guides/decode-logs.md): Turn topics and data into event arguments with an ABI, in Python and TypeScript. - [Export to Parquet and DuckDB](https://docs.bloklake.com/guides/export-to-parquet.md): Write query results to Parquet files and analyze them with DuckDB, Polars or any warehouse. - [Sampling blocks](https://docs.bloklake.com/guides/sampling-blocks.md): Time series over long ranges with blockInterval: base fee every hour, gas used every day. - [Projects and the dashboard](https://docs.bloklake.com/account/projects.md): How accounts, projects, keys and billing fit together, and what the dashboard shows. - [API keys](https://docs.bloklake.com/account/api-keys.md): How keys work, how to send them, rotate them and keep them safe. - [Team and roles](https://docs.bloklake.com/account/team.md): Invite teammates to a project and choose what they can do. - [Pricing](https://docs.bloklake.com/billing/pricing.md): Pay for the data you receive: per GB on pay-as-you-go, or a monthly allowance on a subscription. - [How billing works](https://docs.bloklake.com/billing/how-billing-works.md): Exactly what is counted, what is free, and when you're charged. - [Estimating costs](https://docs.bloklake.com/billing/estimating-costs.md): Work out what a job will cost before you run it, with measured sizes and examples. - [Pay-as-you-go](https://docs.bloklake.com/billing/pay-as-you-go.md): A prepaid USDC balance at $0.50 per GB: enabling it, topping up, alerts and running out. - [Subscriptions](https://docs.bloklake.com/billing/subscriptions.md): The Standard plan and custom plans: included data, overage, invoices, failed payments and cancellation. - [Statements and receipts](https://docs.bloklake.com/billing/statements-and-receipts.md): Monthly statements, CSV exports and receipts for your records and your accountant. - [Production checklist](https://docs.bloklake.com/production/best-practices.md): What a robust, cost-efficient Bloklake client does. Go through it before you ship. - [Rate limits](https://docs.bloklake.com/production/rate-limits.md): Requests per second, requests open at once, and the per-address limits in front of the API. - [Errors and retries](https://docs.bloklake.com/production/errors-and-retries.md): Which errors to retry, how, and how to handle failures in the middle of a response. - [Limits](https://docs.bloklake.com/production/limits.md): Every size and count limit in one place, and what happens when you reach it. - [Troubleshooting and FAQ](https://docs.bloklake.com/production/troubleshooting.md): Common surprises, what causes them, and what to do. - [API overview](https://docs.bloklake.com/api-reference/introduction.md): Base URLs, authentication, formats and conventions. - [Errors](https://docs.bloklake.com/api-reference/errors.md): Every error code, when it happens and what to do. - [Query (Arrow)](https://docs.bloklake.com/api-reference/query.md): POST /query: run a query and receive the rows as Apache Arrow IPC streams. - [Query (JSON)](https://docs.bloklake.com/api-reference/query-json.md): POST /query/json: the same query, with the rows returned as JSON. - [Create a set](https://docs.bloklake.com/api-reference/create-set.md): POST /v1/sets: store a list of addresses or topics and get an id to use in filters. - [Get a set](https://docs.bloklake.com/api-reference/get-set.md): GET /v1/sets/{id}: a set's metadata. - [Delete a set](https://docs.bloklake.com/api-reference/delete-set.md): DELETE /v1/sets/{id}: remove a set you no longer need. - [Register a prepared query](https://docs.bloklake.com/api-reference/create-query.md): POST /v1/queries: register a filter and get its id without running it. - [Chain status](https://docs.bloklake.com/api-reference/status.md): GET /status: the range of blocks served and the finalized block. - [Schema](https://docs.bloklake.com/api-reference/schema.md): GET /v1/schema: every field of every row type, its type, and whether this chain has it. - [Account](https://docs.bloklake.com/api-reference/account.md): GET /v1/account: your key's plan, limit, status and balance or usage. - [Log fields](https://docs.bloklake.com/api-reference/fields/logs.md): Every field of the logs row type: request name, output column, Arrow type, JSON form and nullability. - [Transaction fields](https://docs.bloklake.com/api-reference/fields/transactions.md): Every field of the transactions row type: request name, output column, Arrow type, JSON form and nullability. - [Block fields](https://docs.bloklake.com/api-reference/fields/blocks.md): Every field of the blocks row type: request name, output column, Arrow type, JSON form and nullability. ## Optional - [Dashboard](https://dashboard.bloklake.com) - [Chain status](https://dashboard.bloklake.com/chains) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.