diff --git a/spec/spec.md b/spec/spec.md index 7fc5263c0..1f2d3e02a 100644 --- a/spec/spec.md +++ b/spec/spec.md @@ -139,6 +139,19 @@ These features are deprecated, but can be supported by wallet endpoints to maint - [`solana:signTransactions`](#sign_transactions) +## Account Labels + +Account labels are used to decribe an authorized account's capabilities and intended use. Each authorized account that is returned in [`authorize`](#authorize) request response can include a list of these labels. The dapp endpoint can use these labels in combination with the account's list of [`features`](#feature-identifiers) to determine how each acount should be used. Wallets are encouraged to add labels to accounts so that dapps can have clear context on how each account should be used. When account labels are in use the wallet must fully label all returned accounts to prevent any disambiguity. + +- `primary` + - The users primary account. This account will be used for sign in, and is expected to have the users primary assets. +- `identity` + - An account that contains the users preffered identity credentials. Identity accounts should be used for e.g sign in. +- `feePayer` + - Fee payer accounts, when present, should be used to pay for transaction fees. This profile is incompatible with the `immutable` profile, a fee payer account cannot be `immutable`. +- `immutable` + - An immutable account may be used as a read only account in transactions, but will not support transactions that attempt to change the accounts state. This profile is incompatible with the `feePayer` profile, an immutable account cannot be a `feePayer`. + ## Transport ### WebSockets @@ -416,6 +429,7 @@ where: "display_address_format": "", “label”: “