paritytech / paritytech/host-rust-core

RFC: NFT Sending (contacts)

Open
#514 0 comments 0 reactions 1 assignee View on GitHub

@TorstenStueber is already working on this.

Since Sep 11, 2026.

Contacts R2 blocker rfc Scarcity
Dominant language
Swift
Stars
10
Forks
3
Avg merge
1d 10h
Merged PRs (30d)
148

Description

Description

Sending an NFT means moving it from one of my purses (#512) to a purse of the recipient. The sender picks a person from their contacts and knows nothing else about them. The recipient side is resolved without the sender learning the recipient's accounts: the item lands in the recipient's next free purse. Coinage solves the same problem for coins with receivables and invoices (RFC 0017); NFTs need the same ability.

Motivation

Currently, a product can only send NFTs between dev accounts whose derivation is public, because only the recipient's own host can derive their purses. Users cannot send an item to a real person. The Contacts API (#484) tells us who the recipient is; nothing tells us where to send the item.

Requirements

  • Send an NFT to a picked contact without knowing any of their addresses.
  • The sender learns at most one receiving account and nothing else about the recipient's purses.
  • Sending works when the recipient is offline; delivery cannot require both people to be online at once.
  • The item appears on the recipient's shelf without manual setup on their side.
  • Same behaviour on every host (desktop, mobile, web).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.