Migrating existing NFTs to the Motoko Marketplace

Hey, so this is where we’re at with the marketplace. I’ve got a ‘migration’ struct that’s optional, but what we’d do is if the NFT exists with this struct, it would contain instructions that would allow somebody to prove ownership of / burn an existing legacy NFT to claim it.


Can anybody explain what I should do here? What metadata do i need to check for, and is it even possible to burn? Would there have to be a separate canister that is a controller of the legacy collection?

      record {
        id = "00QJ33D0YYBK1C534VE2PVSJ8B";
        permissions = record {
          profile = record { modify_name = false; modify_description = false };
        };
        core = record { issue = null };
        state = record { todo = 0 : nat8 };
        migration = null;
        asset_id = "00NT6YPXBFT9KJ0ZDY7D2940ZG";
        profile = record { name = "Donna\'s Face"; description = "" };
      };

EDIT - Some collections are going to let us migrate, some (Toniq) will never. So if we could do a “hard way” - proof of ownership, or an “easy way” - burning, that would be great.

@EgidoVal @Jordan_xx

6 Likes

I believe the current “burn method” for NFTs is sending them to the 0000 address, but I’m not sure if this is something that someone has control of (or could be backdoored😅).

I think it is also valuable to offer the ability to migrate the entire collections via canister rather than exclusively by claim if possible.

1 Like

Yeah, I did it on a per-NFT basis as there may be collections that want to add new ones, replace art, fix bugs or do something to the state during migration.

It would be a lot of effort, especially for the larger collections, but they’re going to die otherwise.

If anybody has the private key to 00000000 then I’m not even mad, that’s amazing.

3 Likes

I believe this is going to pose a barrier when migrating collections - it’s going to be nearly impossible to have a collection that is uniform on this standard, due to the amount of dead wallets.

1 Like

Well the claim mechanism can just give a specific duration that it can be migrated/claimed in, and if not it goes back onto the market somehow.

1 Like

Can have a Claim that has 3 optional components - Cost, Migration and Proof of Humanity, brought to you by Decide AI and the Home Depot.

2 Likes

We are still waiting for Cronics :joy:
He ain’t rebooting shit

2 Likes

optional costs

1 Like

@bob11 is no longer worthy of our trust.

1 Like

I’ve been talking with John from the OG Internet Astronauts collection and he’s willing to transfer canister control but I think getting Toniq to sign off on this may be problematic. Some of the NFT founders aren’t even around anymore and Toniq is unresponsive so doing a backdoor way of changing the standard would probably be the best option to get the holders their property to do with what they please. The problem is that Toniq and the NFT founders have peaced out, and as a result the holders have given up. I think we need to take an approach that serves the holders best interest first so there won’t be any backlash but also take some control on their behalf

LoL!
Never gonna happen dude. He’s already stated that he’s moved on

Yeah they pretty much killed NFTs on the IC, and we need them so this is perfect for us. Plus I get to battle-test mimic.

2 Likes

DKP NFT collection? look forward to it!

1 Like

Again, just so we’re clear it has been offered. I’ve already built it. It’s done. In the can. Dfinity paid for most of it. I contributed a bunch extra of my time. It needs a bit of funding to productize it and add a bit of code for IC Specific EXT->ICRC7 cascade, but it does the ‘hard way’ of proof of ownership. It is compatible with evms. You’ll be able to list your stuff on OpenSea and blur, or bring cool monkey seamen or wtf it is called to the IC and sell them on your marketplace. We have a pending grant to add Solana NFTs as well. I’ve made all the mistakes, corrected them, and added tests. All just sitting there.

I have no idea why you’d want to do it all over again.

3 Likes

I think a better standard will come out of us making this marketplace. What you’ve done isn’t really what we need - plus you hate NFTs so there’s that.

2 Likes

I hate NFTs? This is not so, sir. I think NFTs are fantastic and have spent almost a decade building platforms for them.

The existing standards are built on a bunch of input from implementors, extensive conversations across the IC and outside the IC ecosystems, and the learnings from millions of dollars’ worth of mistakes.

If you build a standard based on your marketplace, you’ll likely end up with a standard that is good for your marketplace and no one else’s. This is fine if it is what you want…standards are permission-less; use them or don’t; write a new one if you want. But a standard backed out of a marketplace implementation is EXACTLY what we’ve been struggling against for the last 3 years. The second verse, same as the first.

giphy
It’s all good…as long as you namespace it, I’ll plug it into the reference implementation.

(…and if you care to explain “what you need” I’ll be happy to point out how it likely solves that or took it into account…and if it doesn’t, it is a great use case for continued evolution).

1 Like

Introduction: Why the Plutchik Wheel of Emotions is Key to
Creating the NextGenNFT Standard
In designing the “NextGenNFT” standard, we look into the future of digital experiences in
2030—a world where technology is deeply intertwined with human emotion, from
immersive AR/VR interactions to real-time livestreaming and personalized gaming. To
create a standard that truly resonates with users, we turned to the Plutchik Wheel of
Emotions, a psychological model developed by Robert Plutchik in 1980, which identifies
eight primary emotions—Joy, Trust, Fear, Surprise, Sadness, Disgust, Anger, and
Anticipation—and their combinations.
This framework is crucial because it provides a structured way to understand and design
for the full spectrum of human emotional experiences, ensuring that NFTs can go
beyond static digital assets to become dynamic, emotionally engaging tools that meet
the needs of creators, users, and developers in a rapidly evolving digital landscape.
By designing for these emotions, we ensure that NFTs can evoke meaningful
responses.This emotional depth is critical for 2030, where users expect technology to be
not just functional but also emotionally resonant, especially in immersive contexts like
AR, VR gaming, and livestreaming.
:performing_arts: Why Plutchik’s Wheel of Emotions?
:bullseye: Comprehensive Emotional Coverage
● Plutchik’s Wheel covers all fundamental human emotions (Joy, Trust, Fear,
Surprise, Sadness, Disgust, Anger, Anticipation).
● Provides a clear, universal framework to build emotionally responsive NFTs.
:brain: Universally Recognizable and Relatable
● Emotions defined by Plutchik are universally experienced—this guarantees broad
user relatability and adoption.
● Facilitates designing intuitive, deeply engaging NFT experiences across different
cultures and demographics.
:gear: Structured Emotional Interaction
● The framework offers a clear structure to map emotions directly to interactive
behaviors:
○ Joy → Celebratory responses
○ Fear → Protective and alert responses
○ Surprise → Curiosity-driven, revealing interactions, etc.
● Ensures developers have straightforward guidelines for creating consistent emotional
interactions.
:globe_with_meridians: Flexibility and Scalability
● Easily scalable across diverse applications: gaming, art, identity, safety, legacy,
ethical sourcing, activism, and AI integration.
● Future-proofs NFTs by providing modular emotion-based interactions adaptable to
emerging technologies (AI, AR/VR).
:chart_increasing: Emotional Depth = Increased Value
● Emotionally responsive NFTs foster deeper personal connections, increasing
perceived value and long-term retention.
● Users connect to NFTs emotionally, reducing speculative volatility and creating
sustainable engagement.
Comparison Table: NextGenNFT vs. Current NFT Standards
(ERC-721/ERC-1155)
Current NFT standards like ERC-721 and ERC-1155, while groundbreaking for their
time, were not designed with this emotional framework in mind. They lack the flexibility to
support dynamic, interactive, and emotionally responsive experiences,
limiting their ability to meet the demands of 2030’s use cases. The NextGenNFT
standard, introduces 23 components that enable NFTs to evolve, react to user emotions,
and integrate real-time data, addressing each emotional dimension in ways current
standards cannot. The following comparison highlights these advancements, showing
why NextGenNFT is the future of digital ownership and interaction.
Why NextGenNFT Should Be Made: Plutchik-Inspired Benefits

  1. Emotionally Resonant Experiences for Users
    ● Plutchik Connection: The Plutchik Wheel ensures NFTs address all primary
    emotions, creating a holistic user experience. Current standards lack Emotion
    Responsiveness, limiting engagement.
    ● Example: The Intimate AR Encounter (#31) (Surprise + Joy) adjusts to user
    mood, while the Rage Meter (#21) (Anger) reacts to protest intensity—features
    ERC-721/ERC-1155 can’t support natively.
  2. Empowering Creators with Emotional Tools
    ● Plutchik Connection: Creators can design for specific emotions (e.g.,
    Anticipation for hype, Sadness for memorials), using features like Multi-Owner
    and Generative Content.
    ● Example: The Living Rebellion Canvas (#19) (Anger) lets activists co-create
    art, and the Livestream Generative Highlight Reel (#35) (Anticipation) creates
    unique clips—impossible without NextGenNFT’s collaborative and generative
    capabilities.
  3. Future-Proofing for 2030’s Emotional Needs
    ● Plutchik Connection: 2030’s immersive world (AR, VR, livestreaming) demands
    emotional depth. Features like Oracle Data Integration and Self-Executing
    Actions address real-time emotional triggers (e.g., Fear, Anticipation).
    ● Example: The Disaster Response Pass (#7) (Fear) uses weather data to trigger
    alerts, and the Digital Will (#27) (Sadness) auto-executes—functionalities
    current standards can’t handle without complex workarounds.
  4. Addressing Societal and Ethical Demands
    ● Plutchik Connection: Emotions like Trust and Disgust drive use cases for
    privacy and ethics, supported by Encrypted Content and Conditional Access.
    ● Example: The Digital Passport (#4) (Trust) secures biometrics, and the
    Generative AR Fantasy Scene (#32) (Surprise) ensures age-restricted
    access—critical for 2030’s regulatory landscape, unsupported by current
    standards.
    Comparison Table: NextGenNFT vs. Current NFT Standards
    (ERC-721/ERC-1155)
    Feature/Compon
    ent
    ERC-721/ERC-11
    55 (Current
    Standards)
    NextGenNFT Why It Matters
    (Plutchik Emotion &
    Use Case)
    NFT Name Immutable (part
    of tokenURI,
    manual updates
    via off-chain
    metadata).
    Mutable (NFT
    Name can be
    updated, e.g.,
    “Wedding Day” to
    “10th
    Anniversary”).
    Joy/Sadness: Allows
    NFTs to evolve with
    user experiences
    (e.g., #1 Digital
    Family Scrapbook
    renaming to reflect
    new memories).
    Description Immutable (part
    of tokenURI,
    manual updates
    via off-chain
    metadata).
    Mutable
    (Description can
    be updated, e.g.,
    “Our vows” to
    “Our 10th
    anniversary
    celebration”).
    Sadness: Enhances
    narrative evolution
    (e.g., #13 Digital
    Memorial updates
    with tributes,
    reflecting emotional
    growth).
    ID Supported
    (immutable token
    ID).
    Supported
    (immutable ID).
    Trust: Ensures
    uniqueness and
    traceability, critical
    for secure identity
    (e.g., #4 Digital
    Passport tied to a
    specific ID).
    Issuer Not explicitly
    defined (can be
    inferred via
    contract owner
    or minter,
    immutable).
    Immutable (Issuer
    field explicitly
    defined).
    Trust: Establishes
    provenance and
    supports issuer
    actions like
    revocation (e.g., #4
    Digital Passport
    revoked by
    “Government”).
    Asset Immutable
    (tokenURI links
    to content,
    manual updates
    via off-chain
    metadata).
    Mutable (Asset
    URI can be
    updated, e.g.,
    photo to video).
    Joy/Surprise:
    Enables dynamic
    content updates (e.g.,
    #28 AR Fashion Item
    adapts to casual vs.
    formal, enhancing
    user delight).
    Attributes Limited
    (off-chain
    metadata, not
    natively mutable
    on-chain).
    Mutable
    (key-value pairs
    updated via
    updateAttribute).
    Anticipation:
    Supports evolving
    metadata (e.g., #18
    Boycott Tracker
    updates impact stats,
    driving user
    engagement).
    Immutable Part Supported (token
    ID and
    contract-level
    data are
    immutable).
    Supported
    (explicitly defines
    immutable fields
    like ID, Issuer).
    Trust/Sadness:
    Ensures permanence
    for critical data (e.g.,
    #13 Digital Memorial
    preserves legacy
    with immutable
    fields).
    Royalties Supported in
    ERC-2981
    (optional, not
    native to
    ERC-721/ERC-11
    55).
    Native (built-in
    Royalties field,
    e.g., 10% to
    creator).
    Joy: Ensures creator
    monetization (e.g.,
    #19 Living Rebellion
    Canvas supports
    artists, fostering
    creative joy).
    Dynamic
    Metadata
    Limited (requires
    off-chain
    updates, not
    natively mutable
    on-chain).
    Native (mutable
    fields like Name,
    Description,
    Asset, Attributes
    via
    updateAttribute).
    Joy/Sadness: Allows
    NFTs to evolve (e.g.,
    #1 Digital Family
    Scrapbook updates
    memories, reflecting
    emotional
    milestones).
    Conditional
    Logic
    Not Supported
    (requires
    external smart
    contracts).
    Native
    (checkCondition
    for access/perks,
    e.g., “access:
    VIP”).
    Anticipation/Trust:
    Unlocks features
    dynamically (e.g., #33
    Livestream VIP
    Access Pass grants
    Q&A, building
    excitement).
    Execution Logic Not Supported
    (requires
    external smart
    contracts).
    Native
    (executeOnConditi
    on for automated
    actions, e.g.,
    transfers).
    Fear/Sadness:
    Automates critical
    actions (e.g., #7
    Disaster Response
    Pass triggers alerts,
    #27 Digital Will
    transfers assets).
    Ownership
    Structure
    Not Supported
    (single owner per
    NFT in ERC-721;
    ERC-1155 allows
    multi-token
    ownership but
    not
    co-ownership).
    Native
    (multi-owner
    mapping, e.g.,
    owners[address]:
    {share: 50%}).
    Anger/Joy: Enables
    collaboration (e.g.,
    #19 Living Rebellion
    Canvas co-created by
    activists, fostering
    collective action).
    Context Handler Not Supported
    (no native
    adaptation to
    context).
    Native
    (getContextualAss
    et adapts Asset,
    e.g., “context:
    VR”).
    Surprise: Adapts
    NFTs to
    environments (e.g.,
    #12 Dynamic Quest
    Relic adjusts for
    game modes,
    enhancing immersive
    experiences).
    Encryption
    Layer
    Not Supported
    (no native
    encryption).
    Native
    (privateData and
    getDecryptionKey
    for secure
    content).
    Trust/Surprise:
    Secures sensitive
    data (e.g., #4 Digital
    Passport hides
    biometrics, #31
    Intimate AR
    Encounter ensures
    privacy).
    Pricing Engine Not Supported
    (static pricing,
    requires external
    contracts).
    Native
    (getDynamicPrice
    adjusts value,
    e.g., “price: 0.2
    ETH”).
    Anticipation:
    Dynamically adjusts
    value (e.g., #24
    Prediction Market
    NFT reflects demand,
    creating excitement).
    Sentiment
    Interface
    Not Supported
    (no emotional
    responsiveness).
    Native
    (setSentiment,
    respondToSentimen
    t, e.g., “mood:
    happy”).
    Joy/Anger: Enhances
    engagement (e.g.,
    #19 Living Rebellion
    Canvas intensifies
    with anger, #12
    Dynamic Quest Relic
    glows on wins).
    Oracle Support Not Supported
    (requires
    external
    integration).
    Native
    (updateFromOracle
    for real-time data,
    Fear/Disgust:
    Integrates real-time
    data (e.g., #7 Disaster
    Response Pass uses
    e.g., “weather:
    storm”).
    weather data, #18
    Boycott Tracker
    tracks impact).
    Generative
    Module
    Limited
    (off-chain
    generation, not
    native).
    Native
    (generateAsset for
    unique content,
    e.g., “seed: 123”).
    Surprise: Creates
    unique experiences
    (e.g., #12 Dynamic
    Quest Relic
    generates unique
    swords, delighting
    users).
    Soulbound
    Status
    Not Supported
    (all NFTs are
    transferable by
    default).
    Native
    (restrictTransfer
    for
    non-transferable
    NFTs, e.g.,
    “transferable:
    false”).
    Trust/Sadness:
    Ensures permanence
    (e.g., #4 Digital
    Passport, #13 Digital
    Memorial stay with
    the owner, preserving
    trust).
    Transferable but
    Non-Sellable
    Status
    Not Supported
    (no native
    restriction on
    sales).
    Native
    (restrictSale
    allows gifting,
    e.g., “sellable:
    false”).
    Joy/Disgust:
    Encourages sharing
    without monetization
    (e.g., #19 Living
    Rebellion Canvas
    shared freely,
    promoting activism).
    Self-Destruct
    Settings
    Not Supported
    (requires
    external
    contracts for
    burning).
    Native (burn logic
    for expiration,
    e.g., “expires:
    2030-04-04”).
    Anticipation/Fear:
    Manages NFT
    lifespan (e.g., #33
    Livestream VIP
    Access Pass expires
    post-event, ensuring
    timely utility).
    Revocability
    Status
    Not Supported
    (no native
    revocation
    mechanism).
    Native (revoke for
    issuer
    cancellation, e.g.,
    “revocable: true”).
    Trust: Allows issuer
    control (e.g., #4
    Digital Passport can
    be revoked by the
    government,
    ensuring regulatory
    compliance).
    Social Impact
    Metrics
    Not Supported
    (no native
    tracking of
    impact).
    Native
    (updateAttribute
    for metrics, e.g.,
    “views: 5K”).
    Disgust/Anticipation:
    Tracks impact for
    social good (e.g., #18
    Boycott Tracker
    measures boycott
    success, driving
    activism).
    EXAMPLE OF EXTENDED STANDARD DETAILS INSIDE ONE NFT (23)
    List of Details Each NFT Should Contain
    Each NFT in your standard should include the following details, which correspond to the
    23 components and enable the full range of functionalities:
  5. NFT Name
    ○ Description: The title of the NFT, which can be updated to reflect changes
    over time (e.g., “Wedding Day” to “10th Anniversary”).
    ○ Component: NFT Name (mutable, unless specified as part of the
    Immutable Part).
    ○ Purpose: Provides a human-readable identifier that can evolve with the
    NFT’s lifecycle.
    ○ Example: “Living Rebellion Canvas” (#19), “Dynamic Quest Relic #789
    (#12).
    ○ Use Case Support: Enables Dynamic Metadata (e.g., #1 Digital Family
    Scrapbook renaming to reflect new memories).
  6. Description
    ○ Description: A text field describing the NFT’s purpose or story, which can
    be updated as the NFT evolves (e.g., “Our vows” to “Our 10th anniversary
    celebration”).
    ○ Component: Description (mutable, unless specified as part of the
    Immutable Part).
    ○ Purpose: Offers context and narrative, enhancing user engagement.
    ○ Example: “Protest Art” (#19), “Glowing Sword” (#12).
    ○ Use Case Support: Supports Dynamic Metadata (e.g., #13 Digital
    Memorial updating with tributes).
  7. ID
    ○ Description: A unique identifier for the NFT on the blockchain (e.g.,
    #123).
    ○ Component: ID (immutable).
    ○ Purpose: Ensures uniqueness and traceability, critical for ownership and
    transfer mechanics.
    ○ Example: #123 for “Digital Passport” (#4), #789 for “Dynamic Quest Relic”
    (#12).
    ○ Use Case Support: Enables Soulbound and Revocability (e.g., #4 Digital
    Passport tied to a specific ID).
  8. Issuer
    ○ Description: The entity or creator that minted the NFT (e.g., “FamilyMint
    Co.”).
    ○ Component: Issuer (immutable).
    ○ Purpose: Establishes provenance and authenticity, allowing for
    issuer-specific actions like revocation.
    ○ Example: “ArtivistCollective” (#19), “GameStudio” (#12).
    ○ Use Case Support: Supports Revocability (e.g., #4 Digital Passport
    revoked by “Government”).
  9. Asset
    ○ Description: The primary content of the NFT, such as an image, video,
    3D model, or AR hologram URI (e.g., IPFS link to a photo).
    ○ Component: Asset (mutable).
    ○ Purpose: Represents the core digital content, which can be updated or
    adapted to context.
    ○ Example: Hologram URI for “Intimate AR Encounter” (#31), 3D sword
    model for “Dynamic Quest Relic” (#12).
    ○ Use Case Support: Enables Dynamic Metadata and Context Handler
    (e.g., #28 AR Fashion Item adapts to casual vs. formal).
  10. Attributes
    ○ Description: A set of mutable key-value pairs that store dynamic
    metadata (e.g., “memory: photo,” “kills: 10”).
    ○ Component: Attributes (mutable).
    ○ Purpose: Allows the NFT to store and update metadata, supporting
    evolution and interactivity.
    ○ Example: “contributions: 10” for #19, “mood: happy” for #31.
    ○ Use Case Support: Drives Dynamic Metadata, Social Impact Metrics
    (e.g., #18 Boycott Tracker tracks impact).
  11. Immutable Part
    ○ Description: Specifies which fields are unchangeable, typically ID and
    Issuer, but can include others (e.g., “creatorIntent: fixed”).
    ○ Component: Immutable Part.
    ○ Purpose: Ensures permanence for critical data, maintaining authenticity
    and intent.
    ○ Example: ID and Issuer for all NFTs; “transferable: false” for #4 Digital
    Passport.
    ○ Use Case Support: Supports Soulbound and Self-Destruct (e.g., #13
    Digital Memorial ensures permanence).
  12. Royalties
    ○ Description: The percentage of resale value paid to the creator or cause
    (e.g., 10%).
    ○ Component: Royalties.
    ○ Purpose: Ensures creators are compensated for secondary sales,
    supporting monetization.
    ○ Example: 10% to “ArtivistCollective” (#19), 10% to charity for #35.
    ○ Use Case Support: Built-in Royalties (e.g., #12 Dynamic Quest Relic, #33
    Livestream VIP Access Pass).
  13. Dynamic Metadata
    ○ Description: A mechanism to update mutable fields (Name, Description,
    Asset, Attributes) via a function (e.g., updateAttribute(key, value)).
    ○ Component: Dynamic Metadata (enabled by mutable fields and
    updateAttribute).
    ○ Purpose: Allows the NFT to evolve over time, reflecting changes or user
    interactions.
    ○ Example: Updates “memory: photo” to “video” for #1, “contributions: 10”
    for #19.
    ○ Use Case Support: Core to Dynamic Metadata (e.g., #34 Livestream
    Co-Created AR Overlay evolves with contributions).
  14. Conditional Logic
    ○ Description: Conditions for access or perks, stored as Attributes (e.g.,
    “access: VIP”) and evaluated via checkCondition(key, value).
    ○ Component: Conditional Logic.
    ○ Purpose: Restricts access or unlocks features based on conditions.
    ○ Example: “eventDate: 2030-04-04” for #33, “age: 18+” for #32.
    ○ Use Case Support: Enables Conditional Access (e.g., #33 Livestream
    VIP Access Pass unlocks Q&A).
  15. Execution Logic
    ○ Description: Automated actions triggered by conditions, stored as
    Attributes (e.g., “trigger: 2030-04-04”) and executed via
    executeOnCondition(condition, action).
    ○ Component: Execution Logic.
    ○ Purpose: Automates actions like transfers or burns.
    ○ Example: “trigger: stream end” for #34, “death: true” for #27.
    ○ Use Case Support: Supports Self-Executing Actions (e.g., #7 Disaster
    Response Pass triggers alerts).
  16. Ownership Structure
    ○ Description: A mapping of co-owners with shares/roles (e.g.,
    owners[address]: {share: 50%, role: editor}).
    ○ Component: Ownership Structure.
    ○ Purpose: Enables collaborative ownership and creation.
    ○ Example: “owners: [0xABC: 50%, 0xDEF: 50%]” for #19, “fanGroup: 3
    members” for #33.
    ○ Use Case Support: Enables Multi-Owner (e.g., #19 Living Rebellion
    Canvas co-created by activists).
  17. Context Handler
    ○ Description: Rules for adapting the Asset based on context, stored as
    Attributes (e.g., “context: VR, 3D”) and executed via
    getContextualAsset(context).
    ○ Component: Context Handler.
    ○ Purpose: Adapts the NFT’s presentation to the platform or environment.
    ○ Example: “context: melee” for #12, “context: evening” for #32.
    ○ Use Case Support: Supports Contextual Behavior (e.g., #12 Dynamic
    Quest Relic adapts to game mode).
  18. Encryption Layer
    ○ Description: Encrypted private content (e.g., privateData: encrypted
    URI) and access control via getDecryptionKey().
    ○ Component: Encryption Layer.
    ○ Purpose: Secures sensitive data, accessible only to authorized users.
    ○ Example: “privateData: biometrics” for #4, “privateData: adult content” for
    #31.
    ○ Use Case Support: Enables Encrypted Content (e.g., #31 Intimate AR
    Encounter ensures privacy).
  19. Pricing Engine
    ○ Description: Dynamic pricing rules, stored as Attributes (e.g., “price: 0.1
    ETH”) and updated via getDynamicPrice().
    ○ Component: Pricing Engine.
    ○ Purpose: Adjusts the NFT’s value based on demand or other factors.
    ○ Example: “price: 0.2 ETH” for #24, “price: 0.5 ETH” for #35.
    ○ Use Case Support: Supports Dynamic Pricing (e.g., #33 Livestream VIP
    Access Pass adjusts with buzz).
  20. Sentiment Interface
    ○ Description: Emotional response settings, stored as Attributes (e.g.,
    “mood: happy”) and managed via setSentiment(mood) and
    respondToSentiment().
    ○ Component: Sentiment Interface.
    ○ Purpose: Allows the NFT to react to user emotions, enhancing
    engagement.
    ○ Example: “mood: excited” for #33, “mood: angry” for #21.
    ○ Use Case Support: Enables Emotion Responsiveness (e.g., #19 Living
    Rebellion Canvas intensifies with anger).
  21. Oracle Support
    ○ Description: External data integration, stored as Attributes (e.g.,
    “weather: storm”) and updated via updateFromOracle(key, value).
    ○ Component: Oracle Support.
    ○ Purpose: Integrates real-time data to drive dynamic behavior.
    ○ Example: “viewerCount: 10K” for #34, “donations: $10K” for #35.
    ○ Use Case Support: Enables Oracle Data Integration (e.g., #7 Disaster
    Response Pass uses weather data).
  22. Generative Module
    ○ Description: Generative content settings, stored as Attributes (e.g.,
    “seed: 123”) and created via generateAsset(seed).
    ○ Component: Generative Module.
    ○ Purpose: Creates unique content at minting or reveal.
    ○ Example: “seed: 456” for #12, “seed: 789” for #32.
    ○ Use Case Support: Enables Generative Content (e.g., #35 Livestream
    Generative Highlight Reel creates unique clips).
  23. Soulbound Status
    ○ Description: A flag indicating if the NFT is non-transferable, stored as an
    Attribute (e.g., “transferable: false”) and enforced via restrictTransfer().
    ○ Component: Soulbound (part of Attributes and transfer logic).
    ○ Purpose: Locks the NFT to a wallet for identity or legacy purposes.
    ○ Example: “transferable: false” for #4, #13.
    ○ Use Case Support: Enables Soulbound Capability (e.g., #4 Digital
    Passport).
  24. Transferable but Non-Sellable Status
    ○ Description: A flag allowing gifting but not selling, stored as an Attribute
    (e.g., “sellable: false”) and enforced via restrictSale().
    ○ Component: Transferable but Non-Sellable (part of Attributes and transfer
    logic).
    ○ Purpose: Allows sharing without monetization.
    ○ Example: “sellable: false” for #14, #19.
    ○ Use Case Support: Enables Transferable but Non-Sellable (e.g., #19
    Living Rebellion Canvas shared freely).
  25. Self-Destruct Settings
    ○ Description: Expiration or burn conditions, stored as Attributes (e.g.,
    “expires: 2030-04-04”) and executed via burn logic.
    ○ Component: Self-Destruct (part of Attributes and execution logic).
    ○ Purpose: Automatically removes the NFT after a condition is met.
    ○ Example: “expires: 2030-04-05” for #2, “expires: post-stream” for #34.
    ○ Use Case Support: Enables Self-Destruct (e.g., #33 Livestream VIP
    Access Pass expires post-season).
  26. Revocability Status
    ○ Description: A flag indicating if the issuer can revoke the NFT, stored as
    an Attribute (e.g., “revocable: true”) and enforced via revoke().
    ○ Component: Revocability (part of Attributes and issuer logic).
    ○ Purpose: Allows the issuer to cancel the NFT if needed.
    ○ Example: “revocable: true” for #4, “status: active” for #27.
    ○ Use Case Support: Enables Revocability (e.g., #4 Digital Passport
    revoked by issuer).
  27. Social Impact Metrics
    ○ Description: Metrics tracking engagement or impact, stored as Attributes
    (e.g., “views: 5K”) and updated via updateAttribute.
    ○ Component: Social Impact Metrics (part of Attributes).
    ○ Purpose: Tracks the NFT’s influence or usage for social good or analytics.
    ○ Example: “views: 50K” for #34, “donations: $10K” for #35.
    ○ Use Case Support: Enables Social Impact Metrics (e.g., #18 Boycott
    Tracker tracks boycott impact).
    Example Application: Living Rebellion Canvas (#19)
    ● NFT Name: “Rebellion Canvas” (mutable).
    ● Description: “Protest Art” (mutable).
    ● ID: #123 (immutable).
    ● Issuer: “ArtivistCollective” (immutable).
    ● Asset: Canvas URI (mutable).
    ● Attributes: “contributions: 10,” “views: 5K,” “mood: angry” (mutable).
    ● Immutable Part: ID, Issuer.
    ● Royalties: 10% to cause.
    ● Dynamic Metadata: Updates art (updateAttribute).
    ● Conditional Logic: Not used here.
    ● Execution Logic: Not used here.
    ● Ownership Structure: Co-created (owners).
    ● Context Handler: Not used here.
    ● Encryption Layer: Not used here.
    ● Pricing Engine: Not used here.
    ● Sentiment Interface: Intensifies for anger (setSentiment).
    ● Oracle Support: Protest data (updateFromOracle).
    ● Generative Module: Not used here.
    ● Soulbound Status: Not used here.
    ● Transferable but Non-Sellable Status: Free sharing (restrictSale).
    ● Self-Destruct Settings: Not used here.
    ● Revocability Status: Not used here.
    ● Social Impact Metrics: Tracks reach (updateAttribute).
    Notes
    ● Immutable Part: Assumed ID and Issuer; Name/Description mutable. Confirm if
    different!
    ● Flexibility: Not all NFTs use all 23 details (e.g., #19 doesn’t use Encryption
    Layer), but the template ensures compatibility with all features.
    Top 30 Use Cases with Small Descriptions
  28. #4 Digital Passport (Trust)
    ● Score: 81.75
    ● Small Description: A secure digital ID for 2030 citizens, this NFT proves your
    identity with encrypted biometrics, ensuring privacy. It’s non-transferable, can be
    revoked by the government, and unlocks perks like voting access, making online
    identity safe and trusted.
    ● Details:
    ○ NFT Name: “Citizen Passport” (mutable).
    ○ Description: “Official ID” (mutable).
    ○ ID: #123 (immutable).
    ○ Issuer: “Government” (immutable).
    ○ Asset: Passport graphic (mutable).
    ○ Attributes: “status: active” (mutable).
    ○ Immutable Part: ID, Issuer.
    ○ Royalties: Not used.
    ○ Dynamic Metadata: Updates status (updateAttribute).
    ○ Conditional Logic: Voting access (checkCondition).
    ○ Execution Logic: Not used.
    ○ Ownership Structure: Not used.
    ○ Context Handler: Not used.
    ○ Encryption Layer: Hides biometrics (privateData).
    ○ Pricing Engine: Not used.
    ○ Sentiment Interface: Not used.
    ○ Oracle Support: Not used.
    ○ Generative Module: Not used.
    ○ Soulbound Status: “transferable: false” (restrictTransfer).
    ○ Transferable but Non-Sellable Status: Not used.
    ○ Self-Destruct Settings: Not used.
    ○ Revocability Status: “revocable: true” (revoke).
    ○ Social Impact Metrics: Not used.
  29. #7 Disaster Response Pass (Fear)
    ● Score: 80.5
    ● Small Description: This NFT helps during 2030 climate crises by auto-sending
    evacuation alerts based on weather data. It expires after the crisis and can be
    shared with family, ensuring safety and quick response in emergencies.
    ● Details:
    ○ NFT Name: “Disaster Pass 2030” (mutable).
    ○ Description: “Emergency Access” (mutable).
    ○ ID: #456 (immutable).
    ○ Issuer: “CityGov” (immutable).
    ○ Asset: Alert graphic (mutable).
    ○ Attributes: “weather: storm” (mutable).
    ○ Immutable Part: ID, Issuer.
    ○ Royalties: Not used.
    ○ Dynamic Metadata: Updates alert (updateAttribute).
    ○ Conditional Logic: Grants aid access (checkCondition).
    ○ Execution Logic: Triggers alerts (executeOnCondition).
    ○ Ownership Structure: Not used.
    ○ Context Handler: Not used.
    ○ Encryption Layer: Not used.
    ○ Pricing Engine: Not used.
    ○ Sentiment Interface: Not used.
    ○ Oracle Support: Weather data (updateFromOracle).
    ○ Generative Module: Not used.
    ○ Soulbound Status: Not used.
    ○ Transferable but Non-Sellable Status: Shareable (restrictSale).
    ○ Self-Destruct Settings: Expires post-crisis (burn logic).
    ○ Revocability Status: Not used.
    ○ Social Impact Metrics: Not used.
  30. #37 Smart Inventory Tracker (Trust)
    ● Score: 79.0
    ● Small Description: Used by 2030 logistics companies, this NFT tracks items like
    medical supplies, updating location and condition (e.g., temperature) in real-time.
    It’s secure, co-owned by supply chain partners, and auto-alerts if something goes
    wrong, ensuring trust in deliveries.
    ● Details:
    ○ NFT Name: “Medical Shipment #202” (mutable).
    ○ Description: “Inventory Tracker” (mutable).
    ○ ID: #202 (immutable).
    ○ Issuer: “LogisticsCo” (immutable).
    ○ Asset: Shipment graphic (mutable).
    ○ Attributes: “location: Warehouse A,” “temp: 20°C” (mutable).
    ○ Immutable Part: ID, Issuer.
    ○ Royalties: Not used.
    ○ Dynamic Metadata: Updates location (updateAttribute).
    ○ Conditional Logic: Not used.
    ○ Execution Logic: Alerts on breach (executeOnCondition).
    ○ Ownership Structure: Co-owned by partners (owners).
    ○ Context Handler: Not used.
    ○ Encryption Layer: Secures data (privateData).
    ○ Pricing Engine: Adjusts value (getDynamicPrice).
    ○ Sentiment Interface: Not used.
    ○ Oracle Support: Location, temp data (updateFromOracle).
    ○ Generative Module: Not used.
    ○ Soulbound Status: “transferable: false” (restrictTransfer).
    ○ Transferable but Non-Sellable Status: Not used.
    ○ Self-Destruct Settings: Not used.
    ○ Revocability Status: Not used.
    ○ Social Impact Metrics: Tracks success rate (updateAttribute).
  31. #27 Digital Will (Sadness + Trust)
    ● Score: 78.5
    ● Small Description: In 2030, this NFT securely stores your will, encrypting your
    assets and auto-transferring them to heirs upon death. It’s a private,
    non-transferable way to ensure your legacy is protected with trust and care.
    ● Details:
    ○ NFT Name: “Digital Will 2030” (mutable).
    ○ Description: “Estate Plan” (mutable).
    ○ ID: #789 (immutable).
    ○ Issuer: “LegalCo” (immutable).
    ○ Asset: Will document URI (mutable).
    ○ Attributes: “status: active” (mutable).
    ○ Immutable Part: ID, Issuer.
    ○ Royalties: Not used.
    ○ Dynamic Metadata: Updates status (updateAttribute).
    ○ Conditional Logic: Not used.
    ○ Execution Logic: Transfers on death (executeOnCondition).
    ○ Ownership Structure: Not used.
    ○ Context Handler: Not used.
    ○ Encryption Layer: Hides assets (privateData).
    ○ Pricing Engine: Not used.
    ○ Sentiment Interface: Not used.
    ○ Oracle Support: Death trigger (updateFromOracle).
    ○ Generative Module: Not used.
    ○ Soulbound Status: “transferable: false” (restrictTransfer).
    ○ Transferable but Non-Sellable Status: Not used.
    ○ Self-Destruct Settings: Not used.
    ○ Revocability Status: Not used.
    ○ Social Impact Metrics: Not used.
  32. #13 Digital Memorial (Sadness)
    ● Score: 77.0
    ● Small Description: A 2030 digital keepsake to honor loved ones, this NFT
    evolves with tributes (e.g., messages, photos) and keeps private memories
    encrypted. It’s non-transferable and auto-passes to heirs, preserving memories
    forever.
    ● Details:
    ○ NFT Name: “John’s Memorial” (mutable).
    ○ Description: “In Loving Memory” (mutable).
    ○ ID: #101 (immutable).
    ○ Issuer: “MemorialCo” (immutable).
    ○ Asset: Photo URI (mutable).
    ○ Attributes: “tributes: 1” (mutable).
    ○ Immutable Part: ID, Issuer.
    ○ Royalties: Not used.
    ○ Dynamic Metadata: Adds tributes (updateAttribute).
    ○ Conditional Logic: Not used.
    ○ Execution Logic: Transfers to heirs (executeOnCondition).
    ○ Ownership Structure: Not used.
    ○ Context Handler: Not used.
    ○ Encryption Layer: Hides messages (privateData).
    ○ Pricing Engine: Not used.
    ○ Sentiment Interface: Not used.
    ○ Oracle Support: Not used.
    ○ Generative Module: Not used.
    ○ Soulbound Status: “transferable: false” (restrictTransfer).
    ○ Transferable but Non-Sellable Status: Not used.
    ○ Self-Destruct Settings: Not used.
    ○ Revocability Status: Not used.
    ○ Social Impact Metrics: Not used.
1 Like

I’ll take this at face value and assume that it isn’t a troll post.

The existing standards and proposed standards, 7 as a foundation, 56, 59, 60, and 97 as extensions(See some links: NFT Working Group - Next Steps - ICRC-8, ICRC-56, ICRC-59, ICRC-60), are specifically crafted to give you the breadth for an implementation of this type(and many other types less emotionally focused). I’d say 85% of the scenarios mentioned are specifically addressed in the design and generalizable to a few mechanisms, while the remaining 15% are based on features that we need new IC features for(which have been asked for, in part, because of scenarios very similar to what is mentioned in this article…derivable canister principal IDs for “ID” and access to enclaves for compute over encrypted content.)

I’d be more than happy to walk through it with you. There are hundreds of stories I can tell you of where and how the proposal came about and what types of things it intends to address. You can also review the earlier crack at it from Origyn from which much additional learning made its way into the standards: https://2753736286-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWUDE9boIsKoih8lkRfGQ%2Fuploads%2F2EcaW0EQe1O63hJxH9er%2FORIGYN_PerpetualOS_WhitePaper.pdf?alt=media&token=5dee91c7-5a0e-4e54-98d0-4cdba086e237

1 Like

We’re just going to build the marketplace first, and then evaluate the standards. I don’t want to get bogged down designing standards without fully understanding how it’s going to be used.

Basically, we’re doing what Oisy did for Wallets on the IC.

3 Likes

Mr borovan,

Everyone knows you’re supposed to build the over engineered abstraction before the use case.

What you propose is Heresy!

2 Likes