# Terms

Glossary of Casper Network and SDK terminology.

## Mote

The smallest unit of CSPR (the Casper native token).

`1 CSPR = 1,000,000,000 motes (10^9)`

All SDK amount fields use motes as strings to avoid floating-point issues.

## Deploy

The original Casper transaction format (1.x). Still supported on all nodes. Replaced by `TransactionV1` in Casper 2.x.

## TransactionV1

The modern Casper transaction format introduced in the Casper 2.0 upgrade. More efficient, supports new pricing modes and entry point types.

## Transaction

The SDK's unified wrapper class over both `Deploy` and `TransactionV1`. Use `Transaction.getDeploy()` or `Transaction.getTransactionV1()` to access the specific format.

## Era

The time unit for consensus in Casper. An era is the period during which the validator set does not change. On mainnet an era lasts approximately 120 minutes (~440 blocks), whichever threshold is reached first - the chainspec enforces both a minimum block count (`minimum_era_height`) and a minimum wall-clock duration (`era_duration`).

Validator rewards (seigniorage) are distributed at the end of each era via the switch block. The validator set for era N+2 is determined by the auction at era N (auction delay = 1 era).

## Account Hash

The on-chain identifier for an account. Derived as `blake2b-256("ed25519\0" + publicKeyBytes)` (or `"secp256k1\0"` for SECP256K1). Format: `account-hash-{64-hex-chars}`.

## URef (Unforgeable Reference)

A capability token granting access to a storage location in global state. URefs are generated by the Casper runtime using a CSPRNG - client code cannot forge them.

Format: `uref-{64-hex}-{access}` where the access suffix is a 3-digit octal bitmask:

| Suffix | Permissions |
|---|---|
| `000` | None |
| `001` | Read only |
| `002` | Write only |
| `004` | Add only |
| `006` | Read + Write |
| `007` | Read + Write + Add (full access) |

Purses are a specialization of URef. The main purse of an account has full access rights (`-007`). When a purse URef is shared as a deposit target, it typically carries Add-only rights (`-004`).

## CLValue

A typed value in Casper's Contract Language (CL) type system. Every smart contract argument and return value is a CLValue.

## CLType

The type descriptor for a CLValue. Primitive types: Bool, I32, I64, U8, U32, U64, U128, U256, U512, String, Key, URef, PublicKey, Any. Parameterized: List, Map, Option, Result, Tuple1/2/3, ByteArray.

## AccountHash

The 32-byte on-chain account identifier derived from a public key via blake2b-256.

## Switch Block

The last finalized block of an era. Its `era_end` field is non-null and contains equivocator reports, inactive validator lists, reward data, and the next era's validator weights. The block immediately after a switch block is the first block of the new era.

## Seigniorage

Protocol-level token rewards minted and distributed to validators and delegators at the end of each era (via the switch block). Calculated as a fraction of the initial genesis supply (10 billion CSPR), not the circulating supply. Delegators receive their proportional share minus the validator's delegation rate commission.

## Finality

A block on Casper achieves **strict finality** (not probabilistic) when validators controlling more than two-thirds of total stake weight have signed it. Once finalized, a block cannot be reverted without more than one-third of validators equivocating - which is detectable and economically irrational. The current consensus protocol (Zug) achieves finality within seconds of block proposal.

## AddressableEntity

The Casper 2.0 unified concept that replaces the separate Account and Contract types. An `AddressableEntity` can represent a user account, a deployed smart contract, or a system entity (Mint, HandlePayment). Accessed via `getLatestEntity` on 2.x nodes.

## BidAddr

A validator bid address type introduced in Casper 2.x for the new auction system. Variants: Validator, Delegator, Credit, UnifiedBid.

## Casper 2.0

The Casper 2.0 protocol upgrade. Introduced TransactionV1, AddressableEntity, new auction mechanics, and improved pricing.

## Bytesrepr

The Casper binary serialization format. Used for computing hashes and signing. Little-endian integers, length-prefixed strings and collections.

## State Root Hash

A Merkle root over all on-chain state at a given block. Used as a stable reference point for state queries.

## EntryPoint

A named callable function in a Casper smart contract. Called via `ContractCallBuilder.entryPoint(name)`.
