Chunks
Upload Arweave data chunks or get existing chunk offset information
Get chunk offset information.
Fetches information about the size and offset of a specified chunk.
Path Parameters
Header Parameters
ETag value for conditional request. Returns 304 if chunk hash matches.
Response Body
curl -X GET "https://turbo-gateway.com/chunk/0" \ -H "If-None-Match: string"{
"tx_path": "string",
"packing": "string",
"data_path": "string",
"chunk": "string"
}Get chunk metadata without body.
Returns the same headers as GET but without the response body. Useful for checking chunk existence and metadata.
Path Parameters
Header Parameters
ETag value for conditional request. Returns 304 if chunk hash matches.
Response Body
curl -X HEAD "https://turbo-gateway.com/chunk/0" \ -H "If-None-Match: string"Get chunk as raw binary data with metadata in headers.
Fetches chunk data as raw binary (application/octet-stream) with metadata in response headers. This endpoint provides ~40% bandwidth savings compared to the base64url-encoded JSON endpoint.
Chunk boundaries and merkle tree structure:
- Chunks are determined by Arweave's merkle tree structure (maximum 256 KiB per chunk)
- When you request data at an arbitrary offset, the full chunk containing that offset is returned
- Use X-Arweave-Chunk-Read-Offset to determine where to start reading within the returned chunk
- Merkle proof headers (X-Arweave-Chunk-Data-Path, X-Arweave-Chunk-Data-Root) provide cryptographic verification
Offset relationships:
- X-Arweave-Chunk-Start-Offset: Weave position where this chunk begins
- X-Arweave-Chunk-Tx-Start-Offset: Weave position where the containing transaction begins
- X-Arweave-Chunk-Relative-Start-Offset: Chunk position within its transaction (Chunk-Start-Offset - Tx-Start-Offset)
- X-Arweave-Chunk-Read-Offset: Byte offset within the returned chunk where your requested data starts
Example: Requesting a specific byte
- Request: GET /chunk/50100/data (you want byte 50100 of the weave)
- Response might have:
- X-Arweave-Chunk-Start-Offset: 50000 (chunk starts at weave byte 50000)
- X-Arweave-Chunk-Tx-Start-Offset: 49500 (transaction starts at weave byte 49500)
- X-Arweave-Chunk-Relative-Start-Offset: 500 (chunk is 500 bytes into the transaction)
- X-Arweave-Chunk-Read-Offset: 100 (start reading at byte 100 of the chunk body)
- Content-Length: 262144 (256 KiB chunk returned)
- To get your data: read from byte 100 to end of the response body
Path Parameters
Weave offset (0-based byte position in the weave)
Header Parameters
ETag value for conditional request. Returns 304 if chunk hash matches.
Response Body
curl -X GET "https://turbo-gateway.com/chunk/0/data" \ -H "If-None-Match: string""string"Get chunk metadata without body.
Returns the same headers as GET but without the response body. Useful for checking chunk existence, getting metadata (boundaries, offsets, merkle proofs), and obtaining hashes (ETag, Content-Digest) without downloading the full chunk.
Path Parameters
Weave offset (0-based byte position in the weave)
Header Parameters
ETag value for conditional request. Returns 304 if chunk hash matches.
Response Body
curl -X HEAD "https://turbo-gateway.com/chunk/0/data" \ -H "If-None-Match: string"How is this guide?