OpenALCHI Documentation
Introduction
Welcome to OpenALCHI, a revolutionary project that combines the fascinating world of alchemy with the latest advancements in blockchain technology. OpenALCHI offers a unique gaming experience where users can discover, mint, and trade elemental NFTs. Our platform leverages the power of decentralized finance (DeFi) to create a vibrant ecosystem where users can explore, interact, and benefit from various elements within the game.
Project Overview
User-Generated Elements
Feature Description: Users can now submit elements to the game by paying a submission fee. These elements include a rarity level (ranging from 1 to 10) and are automatically marked as "discovered" upon creation.
How it Works:
Users call the
submitElement
function, passing ararity
parameter.A submission fee is required, which is transferred to the
fundAddress
.Each user-created element is assigned a unique ID and marked with the creator's address.
User-Generated Combinations
Feature Description: Users can propose new combinations of existing elements by linking two input elements to a resulting element.
How it Works:
The function
submitCombination
verifies that the input and output elements exist and are discovered.Only the creator of the result element (or the owner, for system-generated elements) can submit combinations using it.
Royalty System
Feature Description: Users who create new elements earn royalties whenever their elements are minted through combinations.
How it Works:
A percentage of the combination fee (defined by
royaltyPercentage
) is allocated to the element creator.Royalties can be claimed using the
claimRoyalties
function, which transfers the accumulated royalties to the creator's address.
AI-Generated Elements
Feature Description: Future integration of AI-generated elements, allowing for dynamic and innovative additions to the ecosystem. The contract currently supports marking elements as user-created or system-generated, enabling flexibility for future AI integration.
IPFS Integration
Feature Description: The metadata and images for elements are stored on IPFS for decentralized and secure access.
How it Works:
The
uri
function returns the IPFS path for an element's metadata based on its token ID.Each metadata file is expected to follow the structure
[baseURI]/[tokenId].json
.
Migration Support for Combinations
Feature Description: A migration function is available to convert the old combination format into a more optimized structure.
How it Works:
The
migrateCombinations
function populates thecombinationList
array, which stores all combinations in a structured format.This ensures compatibility with future updates and easier querying of combinations.
Fee Structures
Element Submission Fee: Configurable by the owner through the
setElementSubmissionFee
function. This fee is required for creating new elements.Combination Fee: Based on the rarity of the resulting element and calculated using the
calculateFee
function.
Creator-Focused Features
View Creator Elements: Users can retrieve all elements created by a specific address using the
getCreatorElements
function.Royalty Details: Users can check their royalty status and accumulated balance via the
getCreatorRoyalties
function.
Additional Utility Functions
Combination Query: Use
getAllCombinations
to fetch all existing combinations.Combination Existence Check: Use
hasCombination
to verify if a combination exists between two elements.
Smart Contracts
OpenALCHI is powered by several smart contracts, each serving a specific purpose within the ecosystem:
AlchemyGame.sol: Manages the core game mechanics, including element minting and combination discovery. Audit Report: View the audit of the AlchemyGame contract
NFTStake.sol: Handles the staking of NFTs, allowing users to earn rewards over time.
OpenMarketplace.sol: Facilitates the buying, selling, and trading of elements in the marketplace.
Token.sol: Represents the community tokens.
Last updated