ETHDO.ME
Makerspace NFT Concept
Implementation & Documentation
By Wiggles,
January 2025
Version: 1.0
1. Introduction
I am pleased to share my proposal for implementing and documenting the ETHDO.ME Makerspace NFT Contract for ETHDenver 2025. My plan focuses on using a single smart contract—based on the ERC-1155 token standard— to manage a wide range of token types. By unifying both fungible “points” and various unique NFTs into a single contract address, I aim to streamline the user experience and simplify deployment, making it more efficient to administer and track.
2. Disclaimer
- Not Financial Advice: This document is for educational and informational purposes only. It does not constitute legal, financial, or any other professional advice.
- Security: All code is subject to audit before production deployment.
- Ownership & IP: Modifications or distributions of the code must comply with the MIT license.
- Dynamic Content: Token IDs, supply, minting rules, and metadata hosting may change to adapt to evolving needs.
3. Overview of the Concept
Purpose
The ETHDO.ME Makerspace at ETHDenver 2025 aims to:
- Reward Engagement: Provide a fun, gamified points system for event participants.
- Celebrate Milestones: Award distinct NFT badges for completing missions, quests, daily achievements, sponsorships, and more.
- Allow Flexible Growth: Create a structure that can effortlessly scale or introduce new tokens, sponsor NFTs, and bonus missions at any point.
Why a Single Contract?
By leveraging ERC-1155, I can manage everything—both fungible and non-fungible tokens—under one verified contract. This simplifies:
- Deployment & Maintenance: Only one contract to update and verify.
- User Experience: All tokens live within a single, consistent “collection” for participants.
4. Benefits of ERC-1155
- Multi-Token Standard: Supports fungible, semi-fungible, and non-fungible tokens from one contract.
- Gas Efficiency: Batch operations like
mintBatch
andsafeBatchTransferFrom
help reduce costs. - Unified Contract: Potentially unlimited token types (IDs) with differing supply constraints, all in a single contract.
5. Token Types for ETHDO.ME
The following tokens will be created and managed within this single ERC-1155 contract:
- Points Token (Fungible, ID=0)
Unlimited supply, representing each participant’s cumulative points. - Co-Creator NFT
For staff, volunteers, mentors, sponsors, donors, and performers. - ETHDO.ME NFT (General Participation)
A collectible NFT for anyone who participates in the event. - Daily Winner NFTs
Awarded each day to the top 3 participants (by their points balance). - ETHDO.ME Champion NFTs
Awarded at the conclusion of the event to the top 3 participants overall. - Maker Mission NFTs (8 Types)
Each mission has a unique token ID; one NFT minted upon mission completion. - Quest NFTs (8 Unique, Repeatable)
Each quest has a unique ID; participants can earn multiples if the quest is repeatable. - Joy of Giving NFT
A special badge for donors. - Chain Reaction Game Show NFTs
For 1st, 2nd, and 3rd place winners in a live, Ethereum-themed game. - Secret Weapon NFT
A rare recognition bestowed by mentors for exceptional skill or creativity. - Future Tokens
Reserved for potential expansions, new sponsor NFTs, or other creative additions during or after ETHDenver 2025.
6. Contract Structure & Deployment
6.1. Code Foundation
I plan to build on the OpenZeppelin libraries for security and reliability:
@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol
@openzeppelin/contracts/access/Ownable.sol
The contract will inherit from ERC1155Supply
to track total supply per token ID and Ownable
to ensure only authorized addresses can mint or burn.
6.2. Key Variables
POINTS_TOKEN_ID = 0
currentTokenId = 1
(increments as new token types are created)
6.3. Deployment
- Set Base URI: In the constructor, define
baseURI = "https://ethdo.me/metadata/{id}.json"
. - Verify the Contract: Verify on Etherscan (or similar) for transparency.
- Transfer Ownership: Optionally move ownership to a multisig or suitable address for security.
7. Minting During ETHDenver 2025
7.1. Points (ID=0)
Mint via mintPoints(user, amount)
or mint(user, 0, amount)
.
Used as the primary scoring mechanism. Unlimited supply.
7.2. Co-Creator NFT
Reserve a specific token ID (e.g. 1
) for co-creators.
To distribute, call mint(coCreatorAddress, 1, 1)
exactly once per co-creator.
7.3. ETHDO.ME NFT
Could be ID 2
. Mint one to each participant upon registration or their first completed activity:
mint(participant, 2, 1);
7.4. Daily Winner NFTs
Each day, pick the top 3 participants by balanceOf(player, 0)
.
Options:
- Use one ID each for 1st, 2nd, and 3rd place, or
- Create new token IDs daily for dynamic distribution.
7.5. ETHDO.ME Champion NFTs
Awarded at the event’s end to the final top 3 overall. Use a single ID minted to three winners or separate IDs for 1st/2nd/3rd.
7.6. Maker Mission NFTs (8 Types)
Assign IDs (e.g., 10–17
) for eight distinct missions.
Mint exactly one NFT upon completion for each participant (prevent duplicates if only one attempt is allowed).
7.7. Quest NFTs (Repeatable)
Another set of 8 IDs (e.g., 18–25
). Participants can earn multiple copies when they replay the quest.
Each attempt triggers mint(user, questId, 1)
.
7.8. Joy of Giving NFT
For donors. Reserve an ID (e.g., 30
).
Upon donation, mint(donor, 30, 1)
.
7.9. Chain Reaction Game Show NFTs
1st, 2nd, and 3rd place distributed similarly to Daily Winner NFTs. Assign unique IDs or reuse existing ones.
7.10. Secret Weapon NFT
A special, rare NFT minted at mentors’ discretion for outstanding skill or creativity. Could be a single ID or multiple IDs for unique versions.
7.11. Future Expansion
New sponsor badges, special quests, or side missions can be introduced by creating new token IDs as needed.
8. Metadata & User Experience
8.1. Storing Metadata
Default Approach: baseURI = "https://ethdo.me/metadata/{id}.json"
.
Wallets/marketplaces replace {id}
with the token ID in hex.
IPFS Option: setURI("ipfs://QmHash/{id}.json")
for decentralized hosting.
8.2. Viewing in Wallets
ERC-1155 is supported by major marketplaces and wallets. Points (fungible) might appear as a single collectible with a quantity.
9. Scoring & Ranking Logic
- Off-Chain Tally: Periodically query
balanceOf(player, 0)
and sort by points. - Automated Scripts: Nightly or daily scripts can mint the Daily Winner NFTs to top 3 addresses.
10. Security & Key Management
Ownership Model: Ownable
restricts mint/burn to the contract owner or authorized addresses.
Role-Based Access: If multiple team members need mint privileges, consider implementing AccessControl
.
11. Post-Event Possibilities
Ongoing Utility: Participants can hold or trade their NFTs, which may unlock perks (discounts, VIP access, future events). Multiple Editions: The same contract can be reused or extended for future ETHDO.ME events, ensuring continuity.
12. Conclusion
This plan, using a single ERC-1155 contract, will simplify administration of the ETHDO.ME Makerspace NFT Concept during ETHDenver 2025. It consolidates deployment, streamlines the user experience, and provides flexibility for growth and future expansions. After appropriate auditing and refinement, it should provide a seamless, secure, and enjoyable experience for all.
Note: All details are subject to change based on final event schedules, sponsor requirements, audits, and feedback.