Skip to content

Commit ab17302

Browse files
committed
Highlight receive policy benefits
1 parent f2ae9a2 commit ab17302

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

src/pages/protocol/tip20/overview.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Existing tokens continue to work unchanged. See the [T4 → T5 migration appendi
1616
:::
1717

1818
:::info[Coming with T6]
19-
The [T6 network upgrade](/protocol/upgrades/t6) adds account-level receive policies for TIP-20 transfers and mints ([TIP-1028](https://tips.sh/1028)). A receiver can choose which tokens and senders they accept. If a receive policy blocks delivery, the transfer or mint still succeeds, but funds are redirected to `ReceivePolicyGuard` so they can be claimed later.
19+
The [T6 network upgrade](/protocol/upgrades/t6) adds account-level receive policies for TIP-20 transfers and mints ([TIP-1028](https://tips.sh/1028)). A receiver can choose which tokens and senders they accept, helping wallets and deposit addresses avoid unsupported assets, unwanted counterparties, and wrong-token deposits. If a receive policy blocks delivery, the transfer or mint still succeeds, but funds are redirected to `ReceivePolicyGuard` so they can be claimed later.
2020

2121
See the [T5 → T6 migration appendix on the TIP-20 spec](/protocol/tip20/spec#t5--t6-migration) for the TIP-20 surface area.
2222
:::

src/pages/protocol/upgrades/t6.mdx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ T6 is mostly additive. The notes below cover behaviors that integrators, indexer
3535

3636
Receivers can declare which TIP-20 tokens they accept and which senders may send those tokens to them. Both controls live on the TIP-403 precompile as a per-address policy, set via `setReceivePolicy(...)` and enforced via `validateReceivePolicy(...)`. The token's existing TIP-403 policy still runs first and still reverts on failure.
3737

38+
This gives wallets, fintechs, orchestrators, and exchanges receiver-side control without requiring every token issuer or application to build custom allowlist logic. For example, an internal treasury wallet can avoid receiving unsupported assets, and a deposit wallet can accept only the stablecoin it is meant to handle.
39+
3840
When a receive policy blocks an inbound `transfer`, `transferFrom`, `transferWithMemo`, `transferFromWithMemo`, `systemTransferFrom`, `mint`, or `mintWithMemo`, **the call still succeeds** and delivery is redirected to a new precompile, `ReceivePolicyGuard`, at `RECEIVE_POLICY_GUARD_ADDRESS`. The guard records a receipt for the blocked transfer that the receiver-designated recovery authority (either the originator or a recovery address picked by the receiver) can claim later.
3941

4042
- Senders observing a successful `Transfer` event from the host TIP-20 to `RECEIVE_POLICY_GUARD_ADDRESS` should not assume the receiver was credited. Wallets and accounting systems must read the guard receipt to track funds that were redirected.
@@ -66,10 +68,12 @@ T6-compatible SDK releases will be listed here as they ship.
6668

6769
[TIP-1028](https://tips.sh/1028) extends [TIP-403](/protocol/tip403/spec) with per-address receive policies that let a receiver control which TIP-20 tokens they accept and who can send those tokens to them. When an inbound transfer or mint is blocked by a receive policy, delivery is redirected to a new protocol precompile, `ReceivePolicyGuard`, where it is recorded as a receipt and can be claimed later by the originator or by a recovery address designated by the receiver. The token's TIP-403 policy still runs first and still reverts on failure; only receive-policy failures redirect.
6870

69-
This addresses two practical receiver-side problems:
71+
This addresses practical receiver-side problems:
7072

71-
- A regulated entity may want to accept only KYC'ed senders without those senders' transactions reverting.
72-
- Orchestrators and exchanges may want to accept only specific tokens at deposit addresses to prevent unrecoverable funds without locking up the sender.
73+
- A regulated entity may want to accept only approved counterparties or block known-risk counterparties.
74+
- Fintechs may want to prevent internal wallets or customer wallets from holding unsupported or undesirable tokens.
75+
- Orchestrators and exchanges may want deposit addresses to accept only the tokens they support, reducing wrong-token deposit mistakes.
76+
- Wallets and support teams get a recovery path for blocked transfers instead of treating every policy mismatch as an unrecoverable delivery problem.
7377

7478
### TIP-1049: Admin Access Keys
7579

0 commit comments

Comments
 (0)