Glossary
Quick definitions for the terms used throughout this handbook. New to the project? Skim this once, then refer back whenever a term is unfamiliar. Terms link to the page that explains them in depth.
ATS (Asset Tokenization Studio)
The platform these contracts belong to: a system for issuing and managing security tokens (equities, bonds, loans, deposit tokens) on Hedera.
BLR (Business Logic Resolver)
The central on-chain registry. It stores two things: business logics (facets, by resolver key and version) and configurations (the facet set for each asset type). Every token resolves its function calls through the BLR. See Architecture.
Business logic
BLR terminology for a facet — a (resolver key → implementation address) entry, versioned.
Clearing
A settlement workflow where transfers/redemptions are staged and then approved, rather than executing instantly.
Compliance
On-chain rules that gate transfers (e.g. allow/deny lists, identity checks). Implemented via the compliance facets and, optionally, ERC-3643 hooks.
Configuration
A named, independently-versioned set of facets that defines one asset type (Equity, Bond, …). Identified by a configuration ID. See Core concepts.
Configuration ID
The bytes32 identifier of a configuration, following the scheme bytes32(uint256(N)) (Equity = 1,
Bond = 2, …). Defined in scripts/domain/constants.ts.
delegatecall
An EVM operation that runs another contract's code using the caller's own storage. It's how a token (ResolverProxy) executes a facet's logic against the token's state.
Diamond (EIP-2535)
The pattern ATS uses for tokens: one proxy contract delegates each function call to one of many small feature modules (facets). Sidesteps the 24 KB contract-size limit and enables per-facet upgrades. See Architecture.
ERC-1400 family
The security-token standard (think "ERC-20 for regulated securities"), split into sub-standards: ERC-1410 (partitions / partially-fungible), ERC-1594 (issuance & redemption), ERC-1643 (documents), ERC-1644 (controller / forced transfers).
ERC-3643 (T-REX)
A standard for identity- and compliance-gated tokens. ATS is partially compatible — see the compatibility matrix.
ERC-7201
A namespaced storage layout standard. Each feature's storage struct is anchored at a deterministic, collision-free slot so facets sharing one proxy never overwrite each other. See Repository structure.
Facet
A single feature module (e.g. CapFacet, CouponFacet). A token is composed of many facets. Each
lives in contracts/facets/<feature>/ as an interface + logic + facet wrapper.
Factory
The contract that deploys new tokens, wires them to the BLR with a chosen configuration, and seeds their initial roles. See Architecture.
Fallback function
A special Solidity function invoked when a call's selector matches no function defined directly on the contract. The ResolverProxy's fallback is what routes calls to facets.
Freeze
Blocking transfers for an account (fully) or for part of its balance (partial freeze).
Hold
A time-locked escrow of part of a balance — reserved for a future transfer/settlement.
KYC
Know-Your-Customer status for an account, tracked on-chain (internally and/or via external lists).
Modifier
A reusable Solidity guard (e.g. onlyRole(...)). ATS aggregates shared modifiers in
services/Modifiers.sol, which facets inherit.
Partition (ERC-1410)
A named "bucket" of a holder's balance. A token can be single- or multi-partition; transfers can be partition-scoped.
ProxyAdmin
The OpenZeppelin contract that owns and upgrades the infrastructure proxies (BLR, Factory).
RBAC / Role
Role-Based Access Control. Each role is a bytes32 constant (ROLE_*) granted to accounts; it
gates which operations they can call. See Roles & permissions.
Resolver key
The stable bytes32 name of a facet — constant across every version and token. The BLR maps it to
the facet's address. Generated from a @custom:hash resolverKey <Name> annotation.
See Core concepts.
ResolverProxy
The per-token proxy contract (an EIP-2535 Diamond). It holds the token's state and delegates each call to the facet the BLR resolves for its configuration + version.
Selector (function selector)
The first 4 bytes of keccak256 of a function signature (e.g. transfer(address,uint256) →
0xa9059cbb). The proxy uses it to look up which facet to call.
Snapshot
A recorded view of balances at a point in time, used by corporate actions (dividends, voting, coupons) to fix entitlements at a record date.
SSI
Self-Sovereign Identity — verifiable-credential-based identity, integrable for compliance/KYC.
Storage wrapper
A library (in domain/core or domain/asset) that owns one feature's ERC-7201 storage struct
and exposes typed internal getters/setters. Facets call it; they never touch storage slots directly.
TUP (TransparentUpgradeableProxy)
The OpenZeppelin proxy pattern used for infrastructure (BLR, Factory): one implementation,
upgraded as a whole via ProxyAdmin. Contrast with the ResolverProxy (Diamond) used for tokens.
See Architecture → two proxy patterns.
Versioning (shared version vs configuration version)
The BLR keeps one shared version counter for all facets (bumped on every registration) plus an independent version per configuration. A token pins a configuration version (or tracks latest). See Core concepts → Versioning.