The Python SDK exposes address-book reads and invalidation streaming. It also wraps entry and
tag mutations (create_entry, update_entry, delete_entry, create_tag, update_tag, delete_tag), but the API accepts those only with an interactive session token, so an API key is
refused.
list_books():AddressBooksListlist_entries(...):AddressBookEntriesList+ opaque page tokenlist_transfer_counterparties(...): Eligible counterpartieslist_transfer_destinations(...): Saved transfer destinationslist_internal_transfer_whitelist_entries(...): Internal allowlist viewget_withdraw_whitelist_view(...): External withdrawal allowlist stateget_view(...): Composite address-book viewsubscribe_view_invalidations(...): Private invalidation stream
page = await client.address_book.list_entries(limit=50)
for entry in page.entries:
print(entry.address_book_entry_id, entry.label, entry.kind)
view = await client.address_book.get_withdraw_whitelist_view()Address-book entries are saved metadata. Whitelists are enforced allowlists: saving or displaying a destination does not by itself authorize a withdrawal. Re-fetch the relevant view after an invalidation instead of treating the event as a complete snapshot.
All methods are authenticated. The invalidation channel additionally requires Account ID and the address-book read permission on the API-key policy. The method returns only after the private token and Centrifugo handshake succeed.
Related: Withdrawals, Withdrawals security.