Address Book
The Address Book (/address-book) holds an organization's saved counterparty addresses, used to populate destination pickers in the Send flow. Reading is open to any authenticated user (read · AddressBook); adding, editing, and deleting require manage · AddressBook.
Auto-synced internal accounts show as "Predefined" (read-only) alongside manually added external counterparties, which carry Edit / Remove actions.
Entry kinds
Each entry has an AddressBookEntryKind that drives what the user can do with it:
| Kind | Provenance | Editable? |
|---|---|---|
| USER_ADDED | Manually added by a user | Fully editable / removable |
| OWN_INTERNAL_ACCOUNT | Auto-synced from this org's own accounts (multisigs) | Read-only; renames/archives cascade from the account |
| BRIDGING_PERMANENT | The locked Bridging account entry, seeded per participant org on creation | Never editable or removable |
This means the picker always shows your own accounts and the bridging endpoint without manual entry, while still letting you save external counterparties.
Endpoints
| Action | Endpoint | Ability |
|---|---|---|
| List entries | GET /address-book | read · AddressBook |
| Add entry | POST /address-book | manage · AddressBook |
| Edit entry | PATCH /address-book/:entryId | manage · AddressBook |
| Delete entry | DELETE /address-book/:entryId | manage · AddressBook |
Manage affordances in the UI are gated on ability.can('manage', 'AddressBook'); the API enforces the same rule.