# ERC-6059: Parent-Governed Nestable NFTs

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

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

## UX Impact

NFTs can own other NFTs in parent-child hierarchies — enabling bundling, delegation, and composability. Design implications: show nested tree views of NFT hierarchies, design 'pending child' acceptance flows (propose-commit pattern), visualize bundle contents expandable within parent, indicate 'nested inside' status. Design decisions: depth limit for hierarchy display, whether dragging NFTs into others is intuitive, how to handle cross-collection nesting, showing root owner vs immediate parent.

## Summary

ERC-6059 enables NFTs to own other NFTs in parent-child hierarchies. Your character NFT can own sword, armor, and potion NFTs inside it—transfer the character and everything it owns moves together. Perfect for gaming, bundles, and composable digital assets.

## For Designers

- You can design UI that delivers sword and armor nested INSIDE character NFT.
- You can design UI that delivers transfer character = everything inside moves too.
- You can design UI that delivers tree structure: Character → Equipment → Gems.

## Applicability

### When to Use

- Your product addresses: related NFTs scattered across wallet.
- Your product must handle: can't transfer bundle atomically.
- The flow should deliver: sword and armor nested INSIDE character NFT.
- You are designing a nested nft tree view experience with visible states and recovery paths.

### When to Avoid

- Tree view with expand/collapse for nested items.
- Always expand and show ALL contents before sale.
- Require explicit accept for incoming nest requests.
- Assets are fungible tokens only with no unique-item semantics.

## Problems It Solves

### Related NFTs scattered across wallet

Impact: critical

Old way: Character, sword, armor all separate items in flat list

New way: Sword and armor nested INSIDE character NFT

### Can't transfer bundle atomically

Impact: critical

Old way: Transfer character, sword, armor in 3 separate transactions

New way: Transfer character = everything inside moves too

### No visual hierarchy for collections

Impact: high

Old way: All NFTs shown at same level

New way: Tree structure: Character → Equipment → Gems

### Complex inventory management

Impact: high

Old way: Search entire wallet to find items for specific character

New way: Click character, see everything it owns

### Selling bundle requires escrow

Impact: medium

Old way: Trust marketplace to hold items during multi-item sale

New way: Sell parent NFT, children transfer automatically

## Anti-Patterns

### Flat list hiding nested structure

Severity: critical

User can't see what's inside their NFTs

Instead: Tree view with expand/collapse for nested items

### Not showing nested items when selling

Severity: critical

Buyer doesn't know what they're getting

Instead: Always expand and show ALL contents before sale

### Auto-accepting nested children

Severity: high

NFT gets filled with spam

Instead: Require explicit accept for incoming nest requests

### Hiding nested item value

Severity: high

User undersells valuable bundle

Instead: Calculate and display total nested value

### No way to see deep nesting

Severity: medium

Items buried 3+ levels deep become lost

Instead: Breadcrumb navigation and full expand option

### Transfer child without warning

Severity: medium

User moves item and loses track of it

Instead: Confirm with "This will move INTO [NFT name]"

## UI Components

### NFTTreeView

Expandable tree showing nested NFT hierarchy
States: collapsed, expanded, loading, empty
Props: rootNFT, depth, onExpand, onSelect

### NestingModal

Dialog for adding NFT as child
States: selecting, confirming, nesting, complete
Props: parentNFT, availableChildren[], onNest

### BundleValueCalculator

Shows total value of NFT including nested
States: calculating, ready, no-price-data
Props: parentNFT, children[], showBreakdown

### PendingNestRequest

Card for approving/rejecting nest requests
States: pending, accepted, rejected
Props: childNFT, parentNFT, sender, onAccept, onReject

### NestedBreadcrumb

Shows path: Wizard > Backpack > Potion
States: shallow, deep
Props: path[], onNavigate

## On Monad

### Nesting Transactions

Ethereum: Each nest/unnest costs gas

Monad: Cheap nesting enables frequent inventory changes

Design implication: Players can reorganize inventory freely

### Deep Nesting

Ethereum: Fetching deep trees is slow and expensive

Monad: Fast parallel queries for entire hierarchy

Design implication: Can show full tree instantly, not lazy-load

### Bundle Transfers

Ethereum: Large bundles still one transaction

Monad: Sub-second transfer of entire inventory

Design implication: Trading full characters feels instant

### Real-time Updates

Ethereum: Nesting confirmation takes time

Monad: Inventory updates in under a second

Design implication: Game UIs can update immediately after action

## Key Takeaways

- ERC-6059 = NFTs that own other NFTs
- Transfer parent = transfer all children
- Always show nested structure, not flat list
- Calculate bundle value including all nested items
- Require accept for incoming nest requests

## UX Patterns

### Nested NFT Tree View

Hierarchical display of NFTs owning NFTs

User flow:

- User opens inventory
- Sees top-level NFTs
- Expands to see children
- Children can have their own children
- Total value includes all nested items

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

### Add Child to NFT

Nest one NFT inside another

User flow:

- User selects parent NFT
- Views available items to nest
- Selects items to add
- Confirms ownership transfer to NFT
- Items now inside parent NFT

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

### Remove from Parent

Extract nested NFT back to wallet

User flow:

- User opens parent NFT inventory
- Selects items to remove
- Chooses destination (wallet or another NFT)
- Sees warning about nested children
- Confirms removal

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

### Bundle Sale

Sell parent with all children

User flow:

- User selects NFT to sell
- System shows all nested contents
- Displays floor prices for each item
- Suggests bundle pricing
- User sets price and lists
- Buyer gets everything atomically

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

### Pending Child Request

Accept or reject NFT being nested

User flow:

- Someone sends NFT to be nested
- Parent owner sees pending request
- Reviews the item and sender
- Accepts legitimate items
- Rejects spam or unwanted items

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

## Technical Notes

ERC-6059 adds childOf() and parentOf() tracking. Children can be added via nestTransfer() which requires parent owner approval. Pending children exist in limbo until accepted. ownerOf() returns immediate parent, while rootOwner() traverses up to the wallet. Events: ChildProposed, ChildAccepted, ChildTransferred.
