Wallet Consolidation


Unifies related wallets into one entity using on-chain delegations. The entity is used wherever holdings are evaluated as a whole—AB500 Rarity Scores, Achievements, Portfolio rollups, and cost-basis logic. There is no “Consolidations” screen; links are inferred from live delegations shown on profile pages.


Why it matters

  • Set completeness across wallets: evaluations consider the consolidated entity, not each wallet alone. Example: Wallet A holds AB500 tokens X, Y; Wallet B holds Z. Individually neither completes the set; as one entity the set is complete and AB500 scoring reflects that.
  • Achievements across wallets: badges such as AB500 Set Holder, Whale tiers, and collection milestones unlock for the entity even when pieces are split across member wallets.
  • Consistent rollups: value, rarity, and tenure metrics reflect the entity’s combined state.

What drives it

  • NFTDelegation: “General/Profile” and “Consolidation”; optional Primary Address.
  • Delegation.xyz: “ALL” delegations (directional).
  • Only active links count (revoked/expired excluded). Contract/token-scoped links do not imply identity unless explicitly allow-listed by platform rules.

What you’ll notice in the product

  • Profiles continue to show raw delegations.
  • AB500 / Achievements / Portfolio treat the consolidated set of wallets as one owner.
  • No table of singletons; only multi-wallet groupings affect outcomes.

How it works (precedence order)

  1. NFTDelegation (authoritative) Mutual links form cliques; the latest-complete clique wins if overlaps occur. Primary (latest) chooses the root; else Total Days Held (TDH); else lexicographic. Any wallet placed by NFTDelegation is excluded from Delegation.xyz grouping.

  2. Cross-provider mutual pairs If mutual links exist across providers, treat as an NFTDelegation pair with the same root rules and precedence.

  3. Delegation.xyz (fallback; directional) Follow unique-out “ALL” paths to sinks; collapse cycles into one group; nodes with >1 outgoing are excluded. Root = highest distinct token count, then lexicographic.

  4. 1-hop folds into NFTDelegation A single Delegation.xyz leaf pointing to a wallet already in an NFTDelegation group is attached to that group’s root (one hop only). Member label records the source.


Invariants

  • Mapping is member_id → root_id for multi-wallet groups only; wallet=root=self is implied for singletons.
  • NFTDelegation precedence over Delegation.xyz on every run.
  • Deterministic, idempotent, batch- and order-invariant; safe for continuous operation next to live parsing.

Labels in internals/exports

  • source=NFTDelegation for clique/pair members.
  • source=Delegation.xyz for folded leaves and pure Delegation.xyz groups.

Notes on TDH (tie-breaker only)

Used only when no Primary exists and only within the candidate group; rewards sustained ownership and dampens edition size.


FAQs

  • Where do I see consolidation? In outcomes. AB500, Achievements, Portfolio, and cost-basis compute from the consolidated entity anchored at the root wallet. Profile pages show the delegations; there is no separate “Consolidations” page.

  • How do I influence consolidation? Set mutual links in NFTDelegation (General/Profile or Consolidation) and, if needed, mark a Primary Address. For directional setups, use Delegation.xyz “ALL” edges that form a unique-out path to a sink.

  • Which links count? Only active delegations (not expired or revoked). Contract/token-scoped delegations are ignored for identity unless explicitly allow-listed.

  • Which provider has precedence? NFTDelegation wins. Cross-provider mutual pairs resolve under NFTDelegation rules. Delegation.xyz never overwrites an NFTDelegation placement.

  • Does Delegation.xyz need mutual links? No. Delegation.xyz is directional. Grouping follows unique-out paths; cycles collapse to one group; nodes with >1 outgoing are excluded.

  • What picks the root if no Primary? TDH within the candidate group; tie-break by lexicographic.

  • When do changes take effect? On the next processing run after a delegation is enabled, revoked, or expires. Processing applies precedence and recomputes affected closures atomically.