Intro to NFT Metadata
Tableland is usable on mainnets (and testnet) chains while the network itself is in open beta, with a production launch set for 2023.
Tableland is currently in open beta. It’s live on many chains (Ethereum, Polygon, Optimism, etc.), allowing developers to use Tableland as their permissionless relational database. Tableland will move into production in mid-2023. This launch will include a data migration process and introduces a new cost component for table writes.
During the open beta phase (between now and the production release), projects deployed on both testnet and mainnet chains will use the same Tableland network. However, only projects that created tables on mainnet chains during the beta period will be migrated to production. The Tableland team will provide the necessary tooling and support for developers during this process.
Migrating to Production
What tables are in scope?
Only projects using Tableland on mainnets will be in scope. Namely, tables that were minted on mainnet chains will be the only ones included in the transition plan from beta to production. This should happen sometime in mid-2023, and we will do our best to deliver on the ensuing points.
What will Tableland be responsible for?
TL;DR — Coordinating & executing the data migration from the Tableland beta environment to the production environment.
- Nodes will copy in scope table data from the database used during the open beta period to a new production-only database. Other protocol-level aspects will be accounted for.
- The data migration should be handled automatically — if a table was minted on a mainnet chain, we will do our best to port the data from beta to production Tableland without any developer actions required.
- The Tableland team will also provide developer support, as needed.
As a developer, what do I need to do?
TL;DR — The data migration process should happen automatically (with one caveat), and we will do our best to auto-redirect queries from mainnet chains to the Tableland production environment…but to be safe, ensure you’ve taken the proper precautions.
- In terms of moving table data deployed during the beta phase into production tables, we will do our best to ensure developers need to do — nothing. However, there is one caveat: Tableland should handle the data migration process automatically for anything deployed on mainnet chains, but there may be a cost component introduced that would require developers to take action.
- Please be sure to read the section below around production data availability and costs, as there are some actions noted there around table writes.
- Also, as the Tableland network grows during the beta period, there are always new learnings that could change the migration path to production. We don’t anticipate any issues or major changes to arise and will continue to focus our R&D efforts around this topic.
- If you referenced the Tableland gateway during the beta (
testnet.tableland.network) from within a mainnet chain deployment, update this value to point to the production gateway.
- We will make our best effort to auto-redirect queries to the right chain, but just to be certain, please make sure
- In particular, NFT smart contracts should be able to update their
tokenURI, or any other method that references the beta period’s
- Another option is to future-proof your smart contracts to make sure upgradability patterns are possible. This is not required but a potentially useful pattern to implement.
- Note — Since this is a future endeavor, documentation on how to make these changes in your project does not exist yet but will be shared closer to the migration date. In the meantime, check out OpenZeppelin’s
onlyOwnermodifier for altering a
baseURI) and upgradable contracts.
Are there costs involved?
TL;DR — There is not a cost to migrating data to Tableland’s production environment, and this process should be automatic. There is, however, a cost to keeping data available in production, and this process is not automatic (it requires the developer to take action) and is not free.
- In terms of physically migrating the beta period’s data to the production database — no. The data migration should happen automatically and does not require additional payment.
- In terms of updating smart contracts — yes. If you have a contract that, for example, must change an NFT’s
baseURIvariable to point to a new Tableland gateway, this cost must be handled by the developer and will not be covered by Tableland.
- New! — a new cost component will be introduced: additional payment for writes.
- With the Tableland production launch, there will be an additional cost for writing to tables that are stored by validator nodes. Thus, every write query comes with an on-chain transaction cost plus an additional fee; this additive cost is still being researched.
- For example, a table deployed on a mainnet chain during the beta period should automatically be moved to a production table. Thus, once the table has transitioned, all new writes from that point onward must take into account these new additive costs and will require developers to take action.
Will there be “downtime”?
Tableland is a decentralized network, so validator nodes will already be live and running during the Tableland beta phase. The primary action validators must take is to copy the table data (from a database dedicated to the beta period) to a production database. Validators should be able to seamlessly transition tables from the beta to production.
As with any software release that requires social coordination, we will do our best to make sure there are no bumps in the road.
What happens to the open beta version of Tableland? Can I still use Tableland on testnet chains & contracts?
Yes, you can still use Tableland on testnet chains. With the production launch, two Tableland environments will exist: one intended for production, and one intended for testing. A validator’s database that was used during the open beta phase will transition to only supporting testing-related environments, whereas before, a single database supported both testnets and mainnets. Meaning, the database used during the beta phase will only be used to support testnet chains.
On this page