paritytech / paritytech/host-rust-core
RFC: Contacts API
Open
Contacts
R2 blocker
rfc
Scarcity
- Dominant language
- Swift
- Stars
- 10
- Forks
- 3
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 148
Description
Source PR: #17 · docs/rfcs/contacts-api.md · @filvecchiato
Description
A product asks the host to let the user pick a contact. The host renders the picker itself, the user selects one person, and the product receives one opaque 32-byte handle — never the list, a name, or an account.
Motivation
Each user has a different alias and account per context, so the contact list is a private notebook no product can read, and users paste raw keys instead. Sending to a friend needs one recipient the user chose, not the address book.
Requirements
- One method,
pick, taking no arguments; the host owns the overlay and draws it from its own chat contacts. - Outcomes are
Picked { handle },DismissedandNoContacts; a host with no picker answersUnsupported. - No permission is requested — the user selecting a contact is the consent.
- The handle is stable per contact across every product and host, keyed on the user's entropy so it cannot be turned back into an account.
- The handle is resolvable, not usable: the core substitutes the account when it builds the transaction.
- Read-only, one contact per call, and hosts keep their own contact schema.
Tasks
- RFC document body
- Implementation — rust-core — written in #17, awaiting review
- Implementation — hosts
- dotli
- Desktop
- iOS — bindings written in #17
- Android
- host-cli
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.