Get familiar with common words and phrases in web3, databases, and Tableland.
Tableland sits in a unique place in that it is web3-native but also brings traditional databases concepts. If you're new to either of those realms, there are certain terms that may be unfamiliar, and if not, it's still probably helpful to review this taxonomy. It highlights and describes the nomenclature used throughout the protocol itself.
An Access Control List (ACL) provides permissions associated with an object. In Tableland, it is how table mutations are gated where only those who meet the access rules can change the representation of data.
An account is a representation of a web3 identity. It can be either a smart contract or an actual user and is the means to interact with a blockchain. Namely, to send a transaction, it must be sent from some account that holds a balance.
For every account, there is an address that uniquely identifies it with a hexadecimal number (
0x prefixed with 40 characters comprised of
a-f). It's the public key of an account and can be used to, for example, openly send tokens in a transaction to something that resembles
A block is a batch of transactions ordered and grouped together, which then are accepted by the network as a whole. Once accepted, the global state of the chain is updated. Every chain's block times are different, but generally every few seconds, a new block gets "finalized" (accepted by the network), and the transactions included in that block go into effect and change the chain's state.
A blockchain (sometimes called "chain," for short) is a global state machine with shared consensus and execution. Basically, it allows for trustless interactions between accounts and enables an internet-based economy to emerge. There are many different types of chains, including Ethereum.
Although not part of the Tableland protocol itself, IPFS is often used in tandem with Tableland. When files are stored on the IPFS network, they are represented with an immutable and unique Content Identifier (CID); it is a hash (string of characters) is generated and might look something like
A database is a performant way to store and query data. There are many types of databases, but in Tableland, the only one that matters is a "relational" database, which stores information in structured tables and is interfaced with SQL.
A non-smart contract account is called an Externally Owned Account (EOA), which, basically, means a human user. It is an account generated by private keys that does not have any code associated with it. Only EOAs can be the origin of a transaction, meaning, smart contract accounts cannot.
An ERC20 token is the technical name for a fungible token, which includes any cryptocurrency that runs on an EVM chain. For reference, EIPs (Ethereum Improvement Proposals) are an open-source process where someone submits a proposal, and if accepted, it is adopted by the Ethereum protocol into an ERC (Ethereum Request for Comment) standard.
An ERC1155 token is the technical name for a specific way of implementing NFTs. It differs from an ERC721 in that its implementation can have any combination of fungible tokens, non-fungible tokens, or semi-fungible configurations. It adds some flexibility to how a single smart contract can produce, for example, NFTs that are generic vs. one-of-a-kind items, or even ERC20 tokens.
A component of Ethereum is its Ethereum Virtual Machine. It is the most widely adopted virtual machine in web3 and has become the de facto requirement for other chains to adopt. If you're using an EVM chain, that means it shares the same rules for computing a new valid state from block to block; a wallet / account on one chain can be used on another. Although the state is different, the way you interact with the chain is (at a high level) the same.
Filecoin is a decentralized storage network that uses the IPFS protocol but adds incentives to guarantee persistence. In other words, IPFS is a p2p protocol that allows peers to transfer files between each other, and Filecoin extends this with its own token and protocol design to ensure the data will be there upon request.
Sending a transaction is not free; you have to pay gas for the network to execute it. Namely, every time you want to change the blockchain's state, there is a computational gas fee that pays for blockchain nodes to perform the action. Incentives drive network coordination and are essential to decentralized systems. Note that it's possible for a transaction to be sent but never finalized (i.e., it fails) while gas is still paid for. This is because it still costs nodes computational effort to execute the transaction, up until the point of failure.
IPFS stands for Interplanetary File System. It is a p2p protocol and is used as a common way to store files but in a distributed manner, which enables content addressing by way of CIDs. IPFS has less of a "guaranteed" persistence mechanism but does offer a feature for "pinning" files to help tell the network to keep the file around (but it's not incentive driven like its related protocol Filecoin).
Layer 2 (L2) solutions are built on top of another chain to help scale its performance. Generally, they refer to a network that is built on top of Ethereum and implement EVM compatibility, allowing for easy porting from one chain to another. L2s make blockchains scalable by increasing throughput and lowering costs, opening the door for a broader range of applications to be built.
Data that is stored in the Tableland global database first is written onchain (to event logs) and then is processed by database validator nodes. The act of processing and altering the existing database state is to materialize the data.
To mutate is to change. Data mutations relative to tables mean to write data to that table, whether it is adding new data or changing existing data.
A node (also called a "client") is one of many in a distributed network of computers running software that verifies blocks and transaction data. Generally, by running a node, rewards are unlocked for acting non-maliciously and participating in the network as a whole. Every blockchain has different ways of designing the node network.
A Non-Fungible Token (NFT), also referred to as an ERC721 (or ERC1155) token, is an interface for representing data that is distinct and cannot be broken into smaller pieces. It is a widely adopted standard and paves the way for interoperable data objects to exist onchain. One unique component of NFTs is that they allow for an offchain pointer to exist, which is what all common marketplaces read from (e.g., JPEGs). However, this offchain reference can really be anything that adheres to the correct ERC721 schema, and Tableland offers a gateway that can be used as this pointer reference.
When something is "offchain," it means that it had no direct interaction with a base chain and is operating, at least somewhat, independently. As you sit on your computer and read these docs, you're performing an entirely offchain action; none of what you're doing ever gets recorded on the chain itself. An application frontend is exactly the same—it doesn't exist on the blockchain itself, but it could allow you to then interact with one. Offchain isn't necessarily a bad thing, especially, for an adjacent decentralized network like Tableland. It just adds some additional security and consensus considerations that are, often, decoupled from onchain measures.
Something is referred to as "onchain" if it directly interacts with a blockchain and successful interactions are recorded within the distributed ledger. Namely, if you send a transaction, it happens onchain. The data itself may or may not be accessible within a smart contract, though. Event logs are stored onchain, for example, but cannot be read from a smart contract.
Reading data is to observe and extrapolate learnings from it without altering its state / representation.
Tableland is one part onchain, another part offchain. The onchain component is a "registry" smart contract that accepts SQL statements, thus, minting tables and providing data availability of SQL. Without the registry, you wouldn't be able to create nor mutate tables. The offchain part is the Tableland network of validators that materialized the data.
A program that gets executed on a blockchain, often written in Solidity but later compiled into bytecode. Also simply called a "contract," these also have unique addresses associated with them. They differ from EOA in that the account can have code associated with it, but they cannot originate the sending of a transaction.
Structured Query Language (SQL) is a way to interface with database nodes to create, mutate, and extract data.
A table is a database object that acts as a container for data. It organizes it into highly structured rows and columns and allows for relationship mapping between related tables to occur. In Tableland, a table is represented onchain as an ERC721 token that provides table ownership to an account.
Transactions are a unit of work. On blockchains, it's how accounts interact with each other; they allow you to access the shared state and computation of the network as a whole. Transactions include information like which address is sending it, who it's being sent to, and payment for the blockchain executing it—the payment is required because you're paying for the network to perform some task. Keep in mind that databases use the same term. Here, it has a similar meaning in that it's a unit of work the database executes to change its state. Generally, assume a "transaction" is referring to that of a blockchain.
%20 in any URL.
One type of node is a validator. Validators are part of a concept called "proof-of-stake" that replaced "miners" in older blockchain models. Ethereum made this switch and now is a network of validator nodes, and many other chains have followed suit. In fact, the Tableland network is comprised of validators as well. The main difference here is that a validator is just running software to participate in the network, so a Tableland validator is specifically running Tableland client software.
Wallets are a type of software and a way to manage an EOA. It allows users to interact with blockchains by way of browsers and mobile devices since it holds the account's private keys.
The "old" / existing internet is not only built on infrastructure primarily managed by a few large players but also owned by them (like AWS and Google). The data stored here is not truly interoperable, and there is a wealth of data owned by these service providers but not the user / creator of that data. Take, for instance, monetization through cookies and ads that happens using your data but without you knowing. Thus, data is illiquid in both the generalized movement and monetization thereof as it is gated by those who didn't create it.
The "new" internet redesigns things from the ground up, with ownership and payment built into the network as a way to incentivize non-malicious network actions. It differs from "web2," which is the traditional internet that is built on centrally owned and managed applications. (There's a lot more to unpack here, though!)
If there are any words you think are missing or would like to change the description, feel free to contribute!