Glossary

ABI
A JSON description of the external interface for a Contract Instance, or for the description of a common interface of all instances of a Contract
Address
0x-prefixed hexadecimal string representing an account’s public identifier
Artifact
A JSON file describing a single Contract.
AST
Abstract syntax tree. A representation of a particular Source as a deeply-nested JSON object.
Bytecode

0x-prefixed hexadecimal string representing EVM-compatible operation instruction data.

May contain unresolved Link References.

Compilation
A description of the data generated when a contract is compiled. Includes Compiler information as well as any Source, Source Map and Contract information used to generate an artifact for a contract.
Compiler
A description of the compiler name, version, and any and all settings, to compile high-level Source code to EVM Bytecode.
Constructor
Contains the bytecode needed to create the associated Contract Instance.
Contract
An abstract entity, representing a single Contract Instance.
Contract Interface
Refers to the collection of methods through which one may interact with a contract.
Contract Instance
A contract account with its own address, storage, and balance, representing a single deployment of a particular Contract.
Contract Instance Creation
Represents the data needed to recreate a contract instance, comprised of the TransactionHash that points to the transaction that created the related Contract Instance as well as the ConstructorArgs, which are the parameters passed to the constructor, used for creating the Contract Instance.
Contracts Directory

By default this is build/contracts/ in the Project directory

Contains Artifacts for all of the project’s known Contracts.

Instruction
Detailed information regarding how the Ethereum Virtual Machine should handle the associated Bytecode
Library
A Contract Instance with composable behavior, for use by other contract instances via the EVM’s DELEGATECALL mechanism.
Linked Bytecode
Bytecode, with reference to any Link Values referred to within that bytecode.

A placeholder representing a runtime or Network-specific value, at a particular byte offset or offsets. Identified by name.

Filled in with corresponding Link Value by Truffle.

The value used to replace Link Reference placeholders.
Metadata
Represents information about the compiled Contract that can be used to interact with the contract and verify its source code. See relevant Solidity documentation for more information.
Name Record
Represents a linked list of current and past resource name references for a given resource type. Each Name has name and role attributes, as well as a type to represent its underlying resource type, a reference to point to the entity it represents, and previous to point to the previous name.
Network
A particular Ethereum or Ethereum-flavored blockchain network, supporting the EVM. Examples include: mainnet, rinkeby, and local Ganache [1] instances.
Network Directory

A directory containing Artifacts for a particular Network.

build/networks/<network-name>/ by default in the Project directory.

Project
A resource that serves as the aggregation point for the heads of linked lists of :term Name Records<Name Record>
Processed Source
Output from the compiler about a particular Source, including list of represented Contracts and optional AST information.
Snapshot
An immutable collection of data representing the result of a single compilation and/or a single deployment.
Source
High-level language code text, usually for a particular file on disk.
Source Map
Data describing how to translate Bytecode instructions into sections of Source files.
Source Range
Contains the instructions for accessing a source’s Bytecode.
Transaction Hash
An identifier that uniquely identifies a blockchain transaction.

Notes

[1]Ganache is a personal blockchain for Ethereum development