grd@1q… strings you see in CLI and RPC output) are bech32m encodings of an entity reference, with a network-specific human-readable prefix (HRP).
Structure
chain_id: network identifier. Examples:grd(The DevNet Grid),gt1(The TestNet 1 Grid).version: currently1; allows the format to evolve.- Payload (31 bytes), bech32m-encoded:
entity_id(26 bytes): hash of the entity’s public key.component_index(4 bytes, little-endian): which component inside the entity is being addressed. Index0is the default (the account component), used when sending an activation to an entity without targeting a specific component.vm_id(1 byte): which VM runs the target component.
- Checksum: 6-character bech32m CRC. Catches typos and prevents cross-network mix-ups: the HRP feeds the checksum, so an address valid on
grdwill fail validation ongt1.
grd@1@….
Entity vs. component addressing
Most user-facing flows (e.g.gen wallet transfer --to <addr>) target the entity as a whole and let the account component (index 0) route the activation. To call a specific component directly, use the same address format with that component’s index baked in.
Decoding is server-side: the CLI and RPC accept the human-readable form, but validators decode it before signing or verifying, so a signed payload can always be inspected to confirm the targeted entity.
Related
- Entities and accounts: what an entity actually is, and how components relate to it.

