{"eid":"tableland","name":"Tableland","domain":"tableland.xyz","resolved_by":"domain","topics":["storage"],"n_records":1,"best_vorder":6,"review":null,"aliases":["Tableland","tableland.xyz"],"records":[{"rid":"storage/tableland","card":{"rid":"storage/tableland","eid":"tableland","topic":"storage","slug":"tableland","provider":"Tableland","url":"https://tableland.xyz","domain":"tableland.xyz","category":"web3-database","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","self_hosted":0,"confidence":"documented","binding":"per-object-cap","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest,cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-04T01:24:43.358Z","verified_basis":"live","checked_on":"2026-11-04","stale_on":"2026-12-05","n_evidence":10,"usd_month":null,"usd_per_tb_month":null,"summary":"500,000 rows and 24 columns per table. That is the entire quota — it is a SQL-over-SQLite network, not an object store. Byte capacity is implied by row conte...","duplicate_of":null,"n_unknown":5,"free_unit":"GB"},"record":{"topic":"storage","slug":"tableland","provider":"Tableland","url":"https://tableland.xyz","category":"web3-database","free_tier":{"stated":"500,000 rows and 24 columns per table. That is the entire quota — it is a SQL-over-SQLite network, not an object store. Byte capacity is implied by row content and is not published as a number, but 500k rows × 24 columns cannot reach 500 GB under any encoding.","unit":"GB","metered_on":"stored-bytes","source_url":"https://docs.tableland.xyz/fundamentals/limits","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"each table cell is limited to 1kb","source_url":"https://docs.tableland.xyz/fundamentals/limits","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.tableland.xyz/fundamentals/limits","notes":"not stated"},"egress":{"terms":"Reads go through the Tableland gateway and are free; there is no egress meter because the payloads are rows.","metered":false},"interface":["rest","cli"],"interface_detail":"rest","tooling":"Studio web app + Studio CLI + JS SDK, and a documented SQL API. Clean for structured data; irrelevant for blobs. Their own docs recommend pushing large media to IPFS and storing only the CID in a table — which is an admission that the network is a pointer store.","chaining":"Tables are creatable per project and per team, so the multiplier is tables × 500k rows. Even at 10,000 tables this is a metadata tier, not a byte tier.","limits":[{"kind":"per-object-cap","value":"each table cell is limited to 1kb; 500000 rows and 24 columns per table","source":"https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md"}],"limits_note":"fails-quota categorically. Still described as open beta with 'temporary limits while the production mainnet is further researched', so even the row cap is provisional.","identity_cost":{"kind":"email","detail":"email","country":null},"reliability_note":"As read on 2026-11-03, tableland.xyz and docs.tableland.xyz answer HTTP 302 to textile.io and then HTTP 302 to the 2026-10-30 post announcing the wind-down of Recall Labs. Beta-network limits were explicitly flagged as temporary. Do not build a chunk index on a limit that a mainnet launch can change.","confidence":"documented","confidence_note":"re-read on 2026-11-03: the vendor docs limits page https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md (row, column and cell limits, not a file storage solution) and the Recall Labs wind-down post on x.com (RecallLabs_) that tableland.xyz and docs.tableland.xyz redirect to; identity, tooling and retention were not read","evidence":[{"url":"https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md","date":"2026-10-21","proved":"fetched raw: 'Table limits … Rows 500000 … Columns 24'; 'Since Tableland is still in open beta, each table is limited to the following constraints … These are temporary limits'."},{"url":"https://tableland.xyz/","date":"2026-10-21","proved":"opened: 'The decentralized cloud database … built on SQLite. Read and write tamperproof data from apps, data pipelines' — a database positioning, no storage claim."},{"url":"https://docs.tableland.xyz/playbooks/integrations/ipfs","date":"2026-10-21","proved":"surfaced: 'Tableland naturally imposes limits on the size of data you can store in a table. If you need to store larger pieces media, you can use IPFS to store the data and then reference unique Content Identifiers in a table.' Their own recommended alternative route concedes the point."},{"url":"https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md","date":"2026-11-03","proved":"each table cell is capped at 1kb","capture":"sha256:3de2af041bd64971a7ea2ca2ee46166f26434ed7885bce85336a1c5eb2606bc8","quote":"Each cell limit is 1kb."},{"url":"https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md","date":"2026-11-03","proved":"the docs say the network is not file storage","capture":"sha256:3de2af041bd64971a7ea2ca2ee46166f26434ed7885bce85336a1c5eb2606bc8","quote":"Tableland is _not a file storage_ solution."},{"url":"https://x.com/RecallLabs_/status/2116235386582426069","date":"2026-11-03","proved":"the company that built the network announced its wind-down on 2026-10-30","capture":"sha256:56d5fded2755e82d1ab2cb5f223ed6877abb4e539960ade67b329079375a68cc","quote":"We’ve made the decision to wind down Recall Labs."},{"url":"https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md","date":"2026-11-03","proved":"the per-table row limit is 500000","capture":"sha256:3de2af041bd64971a7ea2ca2ee46166f26434ed7885bce85336a1c5eb2606bc8","quote":"| Rows       | 500000   |"},{"url":"probe:tableland.xyz","date":"2026-11-03","proved":"tableland.xyz redirects (HTTP 302 twice, via textile.io) to the Recall Labs post","capture":"sha256:bbe5d9c808f06daa52ca656a8b9b27faeeee81dd3fc88fb1cd1f113f062ef76b","quote":"\"final_url\": \"https://x.com/RecallLabs_/status/2116235386582426069\""},{"url":"probe:docs.tableland.xyz","date":"2026-11-03","proved":"docs.tableland.xyz redirects (HTTP 302 twice, via textile.io) to the same post","capture":"sha256:e63caeec7e844fd0362ad7951e0173f771e3dae43705b4de36697204d61051f7","quote":"\"final_url\": \"https://x.com/RecallLabs_/status/2116235386582426069\""},{"url":"https://raw.githubusercontent.com/tablelandnetwork/docs/main/docs/fundamentals/limits.md","date":"2026-11-04","proved":"each table cell is capped at 1kb","capture":"sha256:3de2af041bd64971a7ea2ca2ee46166f26434ed7885bce85336a1c5eb2606bc8","quote":"Each cell limit is 1kb."}],"verdict":"fails-quota","verified_at":"2026-11-04T01:24:43.358Z","notes":"500,000 rows and 24 columns per table. That is the entire quota — it is a SQL-over-SQLite network, not an object store. Byte capacity is implied by row content and is not published as a number, but 500k rows × 24 columns cannot reach 500 GB under any encoding.","extras":{"dead_end":{"failure_class":"quota","why":"500,000 rows and 24 columns per table. That is the entire quota — it is a SQL-over-SQLite network, not an object store. Byte capacity is implied by row content and is not published as a number, but 500k rows × 24 columns cannot reach 500 GB under any encoding.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"per-object-cap","binding_note":"each cell holds at most 1kb and each table at most 500000 rows by 24 columns; the docs state it is not a file storage solution"},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1.0,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.free_tier.stated","kind":"free-quota","num":500.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":1.0,"unit":"kb","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}]}