# Agent instructions

You are advising on UX and product design for **ERC-7432: Non-Fungible Token Roles**.
This document is the authoritative designer guide from EIPs for Designers.

- Treat **MUST NOT** items as hard constraints unless the user explicitly overrides.
- Use the **Vocabulary** section for UI copy; do not use avoided terms.
- Cite the canonical source URL when giving recommendations.
- Use the official specification only for protocol implementation detail, not as primary UX guidance.

---

# ERC-7432: Non-Fungible Token Roles

Source: https://www.eipsfordesigners.com/standards/ERC-7432
Agent brief: https://www.eipsfordesigners.com/standards/ERC-7432/agent.md
Machine-readable JSON: https://www.eipsfordesigners.com/api/standards/ERC-7432
Last reviewed: 2026-05-25
Last updated: 2026-05-25

| Field | Value |
| --- | --- |
| Status | Final |
| Chain | both |
| Category | NFT Capabilities |
| Journey stages | Approving & Permissioning, Asset Management |
| Detailed guide | Yes |
| Official specification | https://eips.ethereum.org/EIPS/erc-7432 |
| Discussion search | https://ethereum-magicians.org/search?q=ERC-7432 |

## UX Impact

Multiple custom roles (not just user/owner) can be assigned to NFTs with expiration and custom data. Design implications: display role badges per NFT (e.g., 'Manager', 'Tenant', 'Beneficiary'), show role assignment/revocation flows, visualize role hierarchies and permissions, design role marketplace for granting/revoking. Design decisions: how many roles to display before truncating, whether to show technical role IDs or friendly names, complexity of multi-role management UI vs simplified views.

## Summary

Multiple custom roles (not just user/owner) can be assigned to NFTs with expiration and custom data.

## For Designers

- You can display role chips on every NFT card — Manager until Mar 12, not raw role id 3.
- Your assign flow can pick role type, recipient, and expiry in one guided sheet.
- You can disable owner-only actions for role holders with clear This requires owner copy.

## Applicability

### When to Use

- NFTs represent assets with delegated permissions.
- Multiple parties interact with same token differently.
- Roles have expiry or custom metadata worth showing.

### When to Avoid

- Simple ERC-721 with owner-only actions.
- Only user/owner dual roles — ERC-4907 suffices.
- Role count would overwhelm UI without truncation strategy.

## Problems It Solves

### Only owner can act on NFT

Impact: high

Old way: Transfer NFT to delegate temporarily

New way: Grant Manager role while retaining ownership

### Unclear who can use an asset

Impact: high

Old way: Try action and revert

New way: Role roster visible before interaction

### Forgotten delegations

Impact: medium

Old way: Roles linger without visibility

New way: Expiry countdowns and revoke controls

## MUST NOT (Anti-Patterns)

- **Showing only owner with no role list** (high)
  - Why: Delegates discover limits at revert
  - Instead: Role roster on every detail page

- **No expiry warning** (high)
  - Why: Silent permission loss mid-task
  - Instead: Countdown and notification before expiry

- **Displaying raw role id integers** (medium)
  - Why: Meaningless to users
  - Instead: Friendly role names from metadata

## Design Decisions

### How many roles to show on thumbnail?

Recommendation: Max two chips plus +N more on card.

Rationale: Dense role lists clutter grids.

### Friendly names vs role ids?

Recommendation: Map ids to names from contract metadata or app config.

Rationale: Role id 4 means nothing to users.

### Notify on expiry?

Recommendation: Push or email before expiry for high-value roles.

Rationale: Silent expiry causes failed critical actions.

## States to Design

### Owner — full control

Trigger: Viewer is token owner.

User need: Assign, revoke, transfer.

Design response: All actions enabled; role management section visible.

### Active role holder

Trigger: Viewer holds non-owner role.

User need: Know permitted actions and expiry.

Design response: Role banner with allowed actions; owner actions hidden.

### Role expiring soon

Trigger: Expiry within warning window.

User need: Renew or finish tasks.

Design response: Amber countdown on role chip and notification.

### Expired role

Trigger: Past expiry block.

User need: Understand permissions ended.

Design response: Expired badge; disabled former actions with explanation.

### Revoked by owner

Trigger: Owner revoked role early.

User need: Not assume access remains.

Design response: Access ended notice; remove role from active roster.

## Vocabulary

- Use "Manager until [date]" instead of "Role 0x3 assigned": Human role labels with expiry.

- Use "Assign access" instead of "Grant role bitmap": Permission language over encoding.

- Use "Requires owner" instead of "onlyOwner modifier revert": Plain gating explanation.

## UX Patterns

### Role Roster Panel

List roles, holders, and expiry on NFT detail.

Components: RoleChip, HolderRow, ExpiryTimer, AssignButton

User flow:

- Open NFT
- See roles
- Assign or revoke
- Roster updates

Mockup registry key: `concept/nft-gallery` (React UI on the live standard page).

### Role-Gated Actions

Enable buttons based on viewer role.

Components: ActionButton, RoleGate, OwnerOnlyTooltip

User flow:

- User views NFT
- UI checks role
- Permitted actions enabled
- Blocked show reason

Mockup registry key: `concept/permit-approval` (React UI on the live standard page).

## What to Prototype First

### NFT detail role roster

Everyone opens detail to see who holds which role.

Covers: Multiple roles, Expired role, Empty

- Role chips
- Holder address
- Expiry per role
- Assign role CTA

### Assign role sheet

Owners delegate without transferring NFT.

Covers: Pick role, Set expiry, Confirm

- Role picker
- Recipient field
- Expiry date
- Permission summary

### Role holder view

Delegates see what they can do.

Covers: Active role, Expired, Revoked

- You are Manager banner
- Allowed actions list
- Expiry countdown

### Role marketplace listing

Some products grant roles without selling NFT.

Covers: Grant role listing, Purchase role

- Role type
- Duration
- Price
- NFT reference

## Mental Model

### Owner

Ultimate control — can assign and revoke roles.

### Role assignment

Permission bundle granted to another address for a period.

### Role expiry

Automatic revocation — UI must countdown and update without user tx.

### Custom role data

Extra fields per role — show human summary, not raw bytes.

### Action gating

Buttons enable based on caller role, not just ownership.

## Seen in the Wild

- ReNFT: Rental and delegation patterns inform role assignment UX. (https://renft.io/)

- OpenSea: Ownership display extends to delegated permission models. (https://opensea.io/)

- Decentraland: Land manager roles parallel custom NFT roles. (https://decentraland.org/)

## On Monad

### Role assignment cost

Ethereum: Multiple role txs add up

Monad: Low fees encourage granular delegation

Design implication: Offer batch assign in UI on Monad.

### Expiry updates

Ethereum: UI may lag after expiry block

Monad: Fast finality refreshes role state quickly

Design implication: Auto-refresh detail page on expiry without manual reload.

## Related Standards

- ERC-4907: Simpler user/owner dual role model — https://www.eipsfordesigners.com/standards/ERC-4907/agent.md

- ERC-721: NFT base with extended roles — https://www.eipsfordesigners.com/standards/ERC-721/agent.md

## Technical Notes

ERC-7432 supports arbitrary roles; map ids to friendly names and always show expiry.

## Official specification (reference only)

https://eips.ethereum.org/EIPS/erc-7432
