specifications/transactions/offchain-identity/README.md
Diem Payment Network wallets benefit from consistent standards for naming and addressing across participants and their clients.
Each account on-chain is represented by a 16-byte value called an account address. To allow multiplexing of a single address into distinct off-chain identities, or wallets, a participant may use a subaddress. For convenience, Diem defines a standard format for representing the combination of the an account address and a subaddress as an account identifier. Account identifiers have a dedicated URI representation including parameters called an intent identifier. Subaddresses, account identifiers, and intent identifiers are defined in DIP-5.
0x0000000000000000) is reserved to denote the root (VASP owned) account.Account Identifier format: <prefix> | <delimiter> | <version> | <encoded payload> | <checksum>
The Diem Account Identifier must not be mixed-cases and represented by only all upper or lower case. For example, both dm1pptdxvfjck4jyw3rkfnm2mnd2t5qqqqqqqqqqqqq305frg or DM1PPTDXVFJCK4JYW3RKFNM2MND2T5QQQQQQQQQQQQQ305FRG are valid but dm1pptdXVFJCK4JYW3RKFNM2MND2t5qqqqqqqqqqqqq305frg is not.
Identifier information
dm01 (letter p in Bech32 alphabet)0xf72589b71ff4f8d139674a3f7369c69b0xcf64428bdeb62af22vfufkAccount identifier: dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufk
Identifier information
dm01 (letter p in Bech32 alphabet)0xf72589b71ff4f8d139674a3f7369c69b0x0000000000000000d8p9cqAccount identifier: dm1p7ujcndcl7nudzwt8fglhx6wxnvqqqqqqqqqqqqqd8p9cq
The Intent Identifier consists of
diem:// to explicitly specify how the identifier should be interpretedThis intent represents a request to receive funds at a given address. Since neither the amount nor currency are prefilled, the sender will define these fields.
diem://dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufkIntent identifier: diem://dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufk
This intent represents a request to receive funds in a specific currency at a given address. The amount is defined by the sender.
diem://dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufkc=XDX (currency preference is XDX composite token)Intent identifier: diem://dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufk?c=XDX
This intent represents a request to receive a specific amount in a specific currency for a given address.
Identifier information
diem://dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufkc=XDX (currency preference is XDX composite token)am=1000000 (for 1 XDX, amount is 1000000 µ-units)Intent identifier: diem://dm1p7ujcndcl7nudzwt8fglhx6wxn08kgs5tm6mz4us2vfufk?c=XDX&am=1000000