Aptos Glossary
Aβ
Accumulator Root Hashβ
- An accumulator root hash is the root hash of a Merkle accumulator.
Accountβ
- An account in the Aptos blockchain is a container for an arbitrary number of Move modules and Move resources.
- The state of each account is composed of both code and data.
- The account is identified by account address.
See Accounts for more information.
Account Addressβ
- An account address is the address of an Aptos account.
- Account address refers to a specific destination on the Aptos network. The address dictates the destination and source of a specific amount of assets exchanged by two parties on the blockchain.
- Aptos addresses are 64-character hex string (32 bytes). Often times these strings are prefixed with
0x
and for first 16 addresses, the leading 0s are excluded (ex.0x1
)
See Accounts for more information.
APIβ
- An Application Programming Interface (API) is a set of protocols and tools that allow users to interact with Aptos blockchain nodes and client networks via external applications. Aptos offers a REST API to communicate with our nodes.
- See documentation for more details.
APTβ
Aptos token (APT) is the Aptos blockchain native token used for paying network and transaction fees.
Aptosβ
Aptos is a Layer 1 blockchain for everyone. It uses the Move programming language and launched its mainnet on 2022-10-17 to redefine the web3 user experience. The Aptos blockchain is dedicated to creating better user experiences through increased speed, security, scalability, reliability and usability with low transaction costs. The word "Aptos" means "The People" in the Ohlone language. Learn more about the Aptos blockchain on the official Aptos website.
AptosBFTβ
- AptosBFT is the Aptos protocol's BFT consensus algorithm.
- AptosBFT is based on Jolteon.
Aptos Blockchainβ
- The Aptos blockchain is a ledger of immutable transactions agreed upon by the validators on the Aptos network (the network of validators).
Aptos Name Service (ANS)β
- The Aptos Name Service (ANS) is a decentralized naming address service for the Aptos blockchain. An Aptos name is a human-readable .apt domain name that is used in place of a public key, for example love.apt.
- This service also allows users to register subdomain names in addition to the registered domain. Find out more at: Aptosnames.com
Aptos-coreβ
Aptos-core is the open-source repository containing the code for Aptos Network software. Aptos-core contains software for
- the Aptos blockchain itself, which generates and stores the immutable ledger of confirmed transactions and
- the validation process, which implements the consensus algorithm to validate transactions and add them to the Aptos blockchain immutable ledger.
Aptos Ecosystemβ
- Aptos ecosystem refers to various components of the Aptos blockchain network and their interactions. The Aptos ecosystem includes the community, community-driven projects, and events. See Contribute to the Aptos Ecosystem for all possible ways to join Aptos.
Aptos Explorerβ
- The Aptos Explorer is an interface that helps users examine details of the Aptos blockchain, including account information, validators, and transactions.
- The Aptos Explorer help users validate their work in Aptos wallets and other tools in the blockchain. Find more details at Use the Aptos Explorer.
Aptos Frameworkβ
The Aptos Framework defines the public API for blockchain updates and the structure of on-chain data. It defines the business logic and access control for the three key pillars of Aptos functionality: payments, treasury, and on-chain governance. It is implemented as a set of modules written in the Move programming language and stored on-chain as Move bytecode.
Aptos Nodeβ
An Aptos node is a peer entity of the Aptos network that tracks the state of the Aptos blockchain. There are two types of Aptos nodes, validators and fullnodes.
Aptos Protocolβ
- Aptos protocol is the specification of how transactions are submitted, ordered, executed, and recorded within the Aptos network.
AptosAccountβ
- A
AptosAccount
is a Move resource that holds all the administrative data associated with an account, such as sequence number, balance, and authentication key. - A
AptosAccount
is the only resource that every account is guaranteed to contain.
AptosAccount moduleβ
- The AptosAccount module is a Move module that contains the code for manipulating the administrative data held in a particular
AptosAccount.T
resource. - Code for checking or incrementing sequence numbers, withdrawing or depositing currency, and extracting gas deposits is included in the AptosAccount module.
Aptos devnetβ
- See devnet.
Bβ
Blocksβ
- On Aptos, blocks are a batch of transactions committed at the same time.
- Block number is analogous to "block height" in blockchain literature.
- Transactions are referenced by ledger version rather than by block.
Byzantine (Validator)β
- A validator that does not follow the specification of the consensus protocol, and wishes to compromise the correct execution of the protocol.
- BFT algorithms traditionally support up to one-third of the algorithm's voting power being held by Byzantine validators.
Byzantine Fault Tolerance (BFT)β
- Byzantine Fault Tolerance (BFT) is the ability of a distributed system to provide safety and liveness guarantees in the presence of faulty, or "Byzantine," validators below a certain threshold.
- The Aptos blockchain uses AptosBFT, a consensus protocol based on Jolteon.
- BFT algorithms typically operate with a number of entities, collectively holding N votes (which are called "validators" in the Aptos networkβs application of the system).
- N is chosen to withstand some number of validators holding f votes, which might be malicious.
- In this configuration, N is typically set to 3f+1. Validators holding up to f votes will be allowed to be faulty β offline, malicious, slow, etc. As long as 2f+1 votes are held by honest validators, they will be able to reach consensus on consistent decisions.
- This implies that BFT consensus protocols can function correctly, even if up to one-third of the voting power is held by validators that are compromised or fail.
Cβ
CLIβ
- Command line interface refers to the Aptos CLI used for developing on the Aptos blockchain, operating nodes, and debugging issues. Find out more at Use the Aptos CLI.
Clientβ
- Client is software that receives information from the blockchain and manages transactions. Clients interact with the blockchain through the Aptos nodes.
Code labsβ
- Code labs and tutorials depict various workflows - such as the use of the Aptos CLI in minting non-fungible tokens (NFTs) - in order for users to understand how the process works and employ related functions in their code. If users have the necessary funds in their accounts, they can follow the same code lab and tutorial steps used in devnet, testnet and mainnet networks.
Consensusβ
- Consensus is a component of a validator.
- The consensus component is responsible for coordination and agreement amongst all validators on the block of transactions to be executed, their order, and the execution results.
- The Aptos blockchain is formed with these agreed-upon transactions and their corresponding execution results.
- The consensus component is accountable for achieving security, trust, and agreement among all validators on the Aptos blockchain.
Consensus Protocolβ
- A consensus protocol is collectively executed by n validators to accept or reject a transaction and to agree on the ordering of transactions and execution results.
- See BFT.
Dβ
dappsβ
- Decentralized applications (dapps) are programs or digital applications that run on the Aptos blockchain autonomously. Smart contracts are commonly used to achieve this function.
devnetβ
- The Aptos devnet is a publicly deployed instance of the Aptos network that runs using a set of validator test nodes.
- The devnet is a demonstration of the Aptos network that is built for experimenting with new ideas
- The devnet simulates a digital payment system and the coins on the devnet have no real world value.
- The devnet is the network by which developers are given the opportunity to test given protocols. It is similar to testnet as it operates independently of the mainnet yet is reset weekly.
Eβ
Ed25519β
- Ed25519 is our supported digital signature scheme.
- More specifically, the Aptos network uses the PureEdDSA scheme over the Ed25519 curve, as defined in RFC 8032.
Epochβ
- An epoch is the period of time between reconfigurations of the validator set and other administrative actions by the blockchain. On Aptos mainnet currently, it is every 2 hours.
Eventβ
- An event is the user-facing representation of the effects of executing a transaction.
- A transaction may be designed to emit any number of events as a list. For example, a
Coin<AptosCoin>
transfer emits aWithdrawEvent
for the sender account and aDepositEvent
for the recipient account. - In the Aptos protocol, events provide evidence that the successful execution of a transaction resulted in a specific effect. The
DepositEvent
(in the above example) allows the recipient to confirm that a payment was received into their account. - Events are persisted on the blockchain and are used to answer queries by clients.
Executionβ
- Execution in the Aptos blockchain is an Aptos node component that manages the block of transactions. The execution component stores successful transactions.
Expiration Timeβ
A transaction ceases to be valid after its expiration time. If it is assumed that:
- Time_C is the current time that is agreed upon between validators (Time_C is not the local time of the client);
- Time_E is the expiration time of a transaction T_N; and
- Time_C > Time_E and transaction T_N has not been included in the blockchain,
then there is a guarantee that T_N will never be included in the blockchain.
Fβ
Faucetβ
- Faucet is a service that mints APT on devnet and testnet. APT on these networks has no real world value, it is only for development purposes.
- You can use the faucet in a few different ways:
- With the Aptos CLI.
- Through a wallet, such as Petra or Pontem. See full list of Aptos Wallets.
- Using an SDK, for example by using the
FaucetClient
in the TypeScript SDK. - With a direct HTTP request. Learn how to do this here.
Fullnodesβ
- Fullnodes are clients that ensure data are stored up-to-date on the network. They replicate blockchain state and transactions from other fullnodes and validator nodes.
Fungible Assetβ
- A fungible asset is an asset, such as a currency, share, in-game resource, etc., that is interchangeable with another identical asset without any loss in its value. For example, APT is a fungible asset because you can exchange one APT for another.
- Follow the Asset Standards to create fungible assets on the Aptos blockchain.
- Next generation of the Coin standard that addresses shortcomings of
aptos_framework::coin
such as lack of guaranteed enforcement of freeze and burn and advanced functionalities such as programmable transfers, e.g., approve in ERC-20.
Fungible Tokenβ
- For the legacy Aptos Token Standard (aptos_token::token), a fungible token is a token that is interchangeable with other identical tokens (i.e., tokens that share the same
TokenId
). This means the tokens have the samecreator address
,collection name
,token name
, andproperty version
. - For the Aptos Digital Asset Standard (aptos_token_objects::token), a fungible token is a fungible asset with metadata object that includes a Digital Asset resource.
Fungible Unitβ
- A fungible unit is an individual unit of a fungible asset. These units are identical and interchangeable without any loss in value. For example, each Octa (the smallest unit of APT) is a fungible unit.
Gβ
Gasβ
- Gas is a way to pay for computation and storage on a blockchain network. All transactions on the Aptos network cost a certain amount of gas.
- The gas required for a transaction depends on the size of the transaction, the computational cost of executing the transaction, and the amount of additional global state created by the transaction (e.g., if new accounts are created).
- The purpose of gas is regulating demand for the limited computational and storage resources of the validators, including preventing denial of service (DoS) attacks.
See Gas and Storage Fees for more information.
Gas Unit Priceβ
- Each transaction specifies the gas unit price the sender is willing to pay per unit of gas.
- The price of gas required for a transaction depends on the current demand for usage of the network.
- Gas price is expressed in Octa. 1 APT = 10^8 Octa
See Gas and Storage Fees for more information.
Hβ
Honest (Validator)β
- Honesty means a validator that faithfully executes the consensus protocol and is not Byzantine.
Jolteonβ
- Jolteon is a recent proposal for a BFT consensus protocol.
- AptosBFT, the Aptos network's consensus algorithm, is based on Jolteon.
- It simplifies the reasoning about safety, and it addresses some performance limitations of previous consensus protocols. In particular, it reduces latency by 33% compared to HotStuff.
Iβ
Indexerβ
- Indexer is the component of Aptos that retrieves, processes, and efficiently stores raw data in the database to provide speedy access to the Aptos blockchain state.
- At a high level, indexer gets data from a gRPC stream and runs processors to transform raw blockchain data and serve transformed data via GraphQL endpoint.
Lβ
Leaderβ
- A leader is a validator that proposes a block of transactions for the consensus protocol.
- In leader-based protocols, nodes must agree on a leader to make progress.
- Leaders are selected by a function that takes the current round number as input.
Mβ
Mainnetβ
- Mainnet refers to a working, fully-operational blockchain. A mainnet network has been fully deployed and performs the functionality of transferring digital currency from a sender to a recipient.
Maximum Gas Amountβ
- The Maximum Gas Amount of a transaction is the maximum gas amount in gas units that the sender is ready to pay for the transaction.
- The transaction can be successfully executed only if the gas used does not exceed the maximum gas amount.
- The gas charged is equal to the gas price multiplied by units of gas required to process this transaction.
- If the transaction runs out of gas while it is being executed or the account runs out of balance during execution, then the sender will be charged for gas used and the transaction will fail.
See Gas and Storage Fees for more information.
Mempoolβ
- Mempool is one of the components of the validator. It holds an in-memory buffer of transactions that have been submitted but not yet agreed upon and executed. Mempool receives transactions from other full nodes.
- Transactions in the mempool of a validator are added from the JSON-RPC Service of the current node and from the mempool of other Aptos nodes.
- When the current validator is the leader, its consensus component pulls the transactions from its mempool and proposes the order of the transactions that form a block. The validator quorum then votes on the proposal.
Merkle Treesβ
- Merkle tree is a type of authenticated data structure that allows for efficient verification of data integrity and updates.
- The Aptos network treats the entire blockchain as a single data structure that records the history of transactions and states over time.
- The Merkle tree implementation simplifies the work of apps accessing the blockchain. It allows apps to:
- Read any data from any point in time.
- Verify the integrity of the data using a unified framework.
Merkle Accumulatorβ
- The Merkle Accumulator is an append-only Merkle tree that the Aptos blockchain uses to store the ledger.
- A Merkle accumulator can provide proofs that a transaction was included in the chain ("proof of inclusion").
- They are also called "history trees" in literature.
Moduleβ
- A module in the Move programming language may either be a program or library that can create, transfer, or store assets.
Moveβ
- Move is a new programming language that implements all the transactions on the Aptos blockchain.
- It has two different kinds of code β Move scripts and Move modules.
- Move is a safe and secure programming language for web3 that emphasizes access control and scarcity. It is the programming language used to build the Aptos blockchain. You can read more about it in Move on Aptos.
Move Bytecodeβ
- Move programs are compiled into Move bytecode.
- Move bytecode is used to express Move scripts and Move modules.
Move Moduleβ
- A Move module defines the rules for updating the global state of the Aptos blockchain.
- In the Aptos protocol, a Move module is a smart contract.
- Each user-submitted transaction includes a Move script. The Move script invokes procedures of one or more Move modules to update the global state of the blockchain according to the rules.
Move Resourcesβ
- Move resources contain data that can be accessed according to the procedures declared in a Move module.
- Move resources can never be copied, reused, or lost. This protects Move programmers from accidentally or intentionally losing track of a resource.
Move Virtual Machine (MVM)β
- The Move virtual machine executes Move scripts written in Move bytecode to produce an execution result. This result is used to update the blockchain state.
- The virtual machine is part of a validator.
- The Move virtual machine (MoveVM) processes each validator node that translates transactions along with the current blockchain ledger state to produce a changeset as input or storage delta as output.
Nβ
Nodeβ
- A node is a peer entity of the Aptos network that tracks the state of the Aptos blockchain.
- An Aptos node consists of logical components. Mempool, consensus, and the Move virtual machine are examples of node components.
Nonceβ
- Nonce is a number only used once, a random or semi-random number that is generated for a specific use for authentication protocols and cryptographic hash functions.