Summary:
Everyone might have the impulse to design a game, wondering if combining various idle-time ideas could lead to the birth of a game. If you were to design a full-chain game yourself, how would you go about it? It may seem easy, but the actual design process is far more complex than one might imagine. This article uses MOPN, an NFT placement mining game, as an example. The main gameplay involves placing NFTs on limited public land to earn profits, known as placement mining. When designing this game, the developers had to consider creating burn/deflation scenarios for its native tokens, anti-sybil strategies, constructing appropriate mathematical formulas for key data metrics, and addressing dependencies on third-party components like oracles in full-chain games. Below, we will analyze MOPN’s mechanism design and economic model from multiple angles to help more people understand Web3 game design and the implementation path of full-chain games.
As a token-based placement game, MOPN’s core gameplay is straightforward: it creates an open map with nearly one million plots where players place NFTs to receive rewards. MOPN includes four types of assets:
MT Token is the core asset within the game, and all economic activities are related to MT. Players place NFTs on a plot and can earn MT rewards based on the NFT’s score weight and placement time. Of the MT produced by NFT placement mining, 90% is awarded to the NFT owner, 5% to the plot owner as land rent, and 5% to the NFT’s IP treasury (such as BAYC’s in-game treasury)—the Collection Vault, equivalent to a tax.
In MOPN’s design, plots belong to an NFT called MOPN Land. There are a total of 10,981 MOPN Lands, each covering 91 plots, collectively encompassing nearly one million plots on the map. Lands can be obtained through minting and auctions. Once a player acquires a Land, they can place it on the map, activating dormant plots. Only activated plots can have NFTs placed on them. Any player can place NFTs on plots under a Land, but 5% of the earnings must be shared with the Landowner.
An interesting rule in MOPN is that you can use “bombs” to clear other NFTs around you. The game stipulates that within a two-plot distance from where you place your NFT, there cannot be NFTs from other IP series (e.g., BAYC and Pudgy Penguins are conflicting IPs). If you must place your NFT on such a plot, you need to use a bomb to remove the conflicting NFTs. The final effect is that within a two-plot distance around each NFT, only similar NFTs are present.
In summary, the game’s rules are quite simple: place your NFT on a plot to get mining rewards, share a portion of the output with the Landowner, and ensure there are no dissimilar NFTs around you. Additionally, MOPN equips participating NFT collections with a specific Collection Vault treasury. Since MOPN is a full-chain game, market data related to NFTs should not rely on oracles. Thus, MOPN sets up Collection Vaults to obtain off-chain information like NFT market prices through specific mechanisms (to be explained later). These rules build an economic system centered around the MT Token, as shown in the figure. In the following text, we will briefly introduce MOPN’s implementation from the perspective of a game designer.
MOPN creates an ERC-6551 abstract account for each NFT participating in placement mining. The ERC-6551 account is a core component of the MOPN game system, with a large part of the business logic relying on it.
The ERC-6551 standard originates from EIP-6551, which aims to create a dedicated AA wallet account for NFTs, giving them many of the same rights as a regular Ethereum user. For instance, you can register an ERC-6551 account for a BAYC NFT and use this account for transactions and on-chain operations. When a user transfers the NFT, the ownership of the corresponding ERC-6551 account is also transferred.
Significance of ERC-6551
Consider a gaming scenario where an Ethereum address A owns a virtual game character named Bob, which is implemented as an ERC-721 NFT. Bob holds various items (e.g., hats, shoes, weapons) and other assets (e.g., gold ingots) that might be represented as ERC-20, ERC-721 tokens, etc. Although these items are considered to belong to Bob in the game, from the perspective of the underlying contracts, these assets are linked to address A.
If the controller of address A decides to sell Bob, they would need to transfer Bob and all associated game assets individually to the buyer, which is cumbersome and impractical. EIP-6551 aims to address this by creating a dedicated wallet account for the virtual game character Bob to manage its items and assets, streamlining and rationalizing the entire interaction process.
ERC-6551 Modules
ERC-6551 consists of two main modules:
Registry: This is a factory contract where users can submit their NFT contract address and tokenId. The Registry generates a unique fixed address for the user’s NFT and deploys the account at this address.
Account Implementation: This module covers the specific implementation details of the ERC-6551 account. Different projects can adopt implementation schemes that suit their needs.
MOPN has equipped itself with its own Registry and Account Implementation modules. Users can input the NFT contract address and tokenId to deterministically create a dedicated ERC-6551 account for the NFT, catering to various game operation requirements.
As previously mentioned, the first step for users upon entering the game is to select an NFT and place it in an appropriate area. The following image shows a portion of the MOPN map:
On the game map, we can observe NFTs belonging to different IP collections and tiles of various colors. Each NFT radiates the tiles around it within one grid into a specific color. Only NFTs of the same type can be placed adjacent to each other, while different types of NFTs must be separated by at least two tiles. MOPN uses hexagonal tiles and establishes a coordinate system as shown in the following image:
Clearly, each tile on the map has a unique coordinate, and the entire map is divided into 10,981 regions, designated as 10,981 MOPN Lands. Each Land has its unique LandId. In MOPN’s design, Land owners can charge rent from NFT placers, meaning 5% of the NFT mining revenue will flow into the Land owner’s ERC-6551 account. Each placed NFT has a titleAccounts field in its ERC-6551 account, indicating the collection to which the NFT belongs.
The content mentioned above is only the tip of the iceberg of the entire MOPN mechanism design. From the perspective of a game designer, you still have to consider a lot of troublesome issues. first,In the early stages of the game, you have to consider which NFTs can participate in the MOPN game. If you do not limit the types of NFTs, someone will definitely place a large number of junk NFTs on the map to quickly obtain a large amount of MT Token income, which will eventually lead to serious token inflation. The essence is the anti-witch issue.In order to avoid such situations, restrictions must be taken to only allow specific types of NFTs to participate in the game. Before MOPN officially launches, it uses the following formula to score all NFT collections on the market:
Before the official launch of MOPN, the following formula was used to score all NFT collections on the market:
Below is the statistical table provided by the MOPN officials based on recent snapshot information. In the table, there is a column named STAGES, indicating when the NFT collection can participate in the game. NFT series marked as Stage1 can participate in placement mining at the game’s launch, while Stage2 and Stage3 will need to wait until the game reaches a certain stage.
Anyone can place NFTs. The person placing the NFT does not have to be the owner of the NFT, but only the NFT owner can directly claim the mining rewards from placing the NFT. Afterward, a portion of the rewards can be distributed to the person who placed the NFT on behalf of the owner. This person, who places the NFT without owning it, is referred to as an “Agent.” According to MOPN’s design, when the NFT owner claims the mining rewards or when the NFT is moved or destroyed, the Agent can receive a portion of the mining rewards. The specific amount is:The specific value is:
where nnn is the number of Agents already associated with that particular NFT series (e.g., if nnn people have acted as Agents for BAYC NFTs). Clearly, the earlier an Agent participates in the game, the more rewards they can earn.
This question needs to be answered in conjunction with MOPN’s economic model. The total supply of MT is 1 billion tokens. Every time a Blast block is created (approximately every 2 seconds), MOPN releases a certain amount of token rewards to the NFT miners. Initially, MT is set to release 60 tokens per block, and every 50,000 blocks (1.2 days), the MT release amount decreases by 0.3%. The specific release curve is as follows:
This question needs to be answered in conjunction with MOPN’s economic model. The total supply of MT is 1 billion tokens. Every time a Blast block is created (approximately every 2 seconds), MOPN releases a certain amount of token rewards to the NFT miners. Initially, MT is set to release 60 tokens per block, and every 50,000 blocks (1.2 days), the MT release amount decreases by 0.3%. The specific release curve is as follows:
Tile Point is categorized based on the block where the NFT is placed, divided into three tiers: +1, +5, and +15, corresponding to three types of blocks with different rarity levels on the map.
Finally, each NFT receives a portion of the MT rewards released per block based on its Point’s proportion to the total Points of all participating NFTs.
Previously, we mentioned that when placing an NFT on the MOPN map, you must declare the LandId of the target plot. LandID represents the LAND number to which the plot belongs. When the NFT placer claims the MT mining reward, 5% of the MT flows into the landlord’s account of the LAND to which the plot belongs (each landlord controls different LAND). In MOPN, the function of Land is to manage plots, and the relationship between plots and NFTs is like that between flowers and flowerpots. Therefore, LAND is also one of the core assets in the game.
(Land is essentially an NFT, with coordinates such as (-48, 10) marked in the lower-left corner representing the center point plot of this Land on the MOPN map.) Ownership of LAND is expressed in the form of NFTs, and all LAND NFTs are issued in two ways: by minting with ETH or through auction minting with MT Tokens. The model for minting Land with ETH is relatively simple. Players can spend a certain amount of ETH to directly mint and obtain Land. The minting price for the first Land is 0.02 ETH, and each subsequent Land increases in price by 0.1% compared to the previous one.
The process of auction minting Land with MT is relatively more complex, adopting a Dutch auction model. The starting price for each Land is 1,000,000 MT, and the starting price is automatically reduced by 1% every 5 rounds. After one round of auction is completed, the next round will automatically start. All MT used to purchase/mint Land will be burned, marking the first method in the MOPN game where MT is destroyed.
The Bomb mechanism comes into play when placing an NFT: if there are alien NFTs within two plots of the target plot, you must use a Bomb to blow up the alien NFTs, clearing their plots. A Bomb is a method to forcibly remove alien NFTs from the map and is obtained by burning MT. Once used, the Bomb is destroyed, marking the second scenario in MOPN where MT is burned.
The pricing of the Bomb follows the formula:
where MT Production is the MT output mined from the target land plot, titles represent the number of land plots this bomb aims to clear, and bomb production represents the usage of Bombs within the past 7200 blocks. The more MT mined from the target land plot or the more frequently Bombs are used over a period of time, the more expensive the Bomb becomes.
Previously, we mentioned that MOPN allocates rewards to NFTs placed on the map according to a scoring system called MOPN Point, which includes Title Point and Collection Point. Title Point is determined by the rarity of the land plot where the NFT is located, while Collection Point is related to the vault exclusive to the NFT collection (e.g., BAYC) within the game. Collection Point measures the MT reserves in the NFT vault. The more MT in the vault, the higher the mining income for that type of NFT. The initial calculation formula is:
In this context, Vault $MT refers to the MT reserves of the NFT vault. There are two ways to add MT to the vault: mining taxes and staking. The first method, as mentioned earlier, automatically contributes a 5% tax to the vault whenever any NFT mining rewards are extracted (another 5% goes as land rent). The second method is voluntary staking, where staking MOPN into a specific NFT vault can yield APY.
The NFT vault in MOPN also has other functions, such as providing market price data for NFTs. Since MOPN revolves around NFTs, their market price is a crucial data point. However, as an on-chain game, MOPN aims to avoid relying on centralized components like oracles. To address this, MOPN has created an NFT trading platform similar to an AMM (Automated Market Maker). This platform allows players to buy and sell NFTs, and various arbitrage activities ensure that the NFT prices on this platform remain consistent with external markets. Thus, the system can ascertain the external market price of NFTs without relying on oracles.
The MOPN NFT trading platform adopts a model similar to Uniswap’s, essentially a point-to-pool system. However, unlike ERC-20 AMMs, NFT AMMs are harder to implement because NFTs are non-fungible, meaning everyone has their subjective valuation for a specific NFT, making it impossible to price an entire IP series directly. Additionally, the limited number of NFTs and their lower liquidity compared to fungible tokens (FTs) make transactions more challenging. To address this, MOPN combines auctions with AMM, where the vault contract directly participates in NFT trading, contributing liquidity.
The process of the NFT vault acquiring NFTs from players follows an automatic bidding system. The initial bid is 20% of the MT balance in the vault. After the first transaction, the starting buy price for the next acquisition is set at 75% of the vault’s last asking price, increasing by 0.05% per block, with a cap at 20% of the vault balance. If an NFT holder finds the offer acceptable, they can sell their NFT. The vault then switches to selling the acquired NFT, initiating a Dutch auction with a starting price of 125% of the acquisition price, decreasing by 0.05% per block, down to a minimum of 1 MT. After the auction, 0.5% of the transaction price is burned, representing the third method of MT destruction. Once the NFT is sold, the vault can resume buying NFTs, providing new offers, and the cycle continues.
Compared to the conventional x⋅y=kx \cdot y = kx⋅y=k model, the auction-based generalized AMM helps each NFT achieve a fair price, ultimately leading to near-optimal transactions. If MOPN gains enough influence, many NFTs might trade this way, potentially enhancing NFT liquidity. This auction mechanism ensures proper NFT pricing, so the vault’s transaction prices can be roughly considered the current floor price of the NFT collection, replacing the oracle’s feed function.
Returning to the MOPN Point system, due to the possible instability of the vault’s MT reserves from NFT buying and selling, the Point calculation formula changes for fairness and stability after an NFT is sold from the vault:
where the vault last ask-accept price is the MT amount obtained from the last sale of the NFT by the vault, and vault $MT is the MT deposit in the vault before the NFT sale.
From a technical implementation perspective, MOPN introduces ERC-6551 accounts to enhance the system’s flexibility and composability while adopting an auction-based NFT trading platform to provide a point-to-pool NFT market. This internal market quotation mechanism addresses the dependency on oracles in on-chain games. As an easily comprehensible example of an on-chain game economic model design, MOPN is worth studying in depth.
Summary:
Everyone might have the impulse to design a game, wondering if combining various idle-time ideas could lead to the birth of a game. If you were to design a full-chain game yourself, how would you go about it? It may seem easy, but the actual design process is far more complex than one might imagine. This article uses MOPN, an NFT placement mining game, as an example. The main gameplay involves placing NFTs on limited public land to earn profits, known as placement mining. When designing this game, the developers had to consider creating burn/deflation scenarios for its native tokens, anti-sybil strategies, constructing appropriate mathematical formulas for key data metrics, and addressing dependencies on third-party components like oracles in full-chain games. Below, we will analyze MOPN’s mechanism design and economic model from multiple angles to help more people understand Web3 game design and the implementation path of full-chain games.
As a token-based placement game, MOPN’s core gameplay is straightforward: it creates an open map with nearly one million plots where players place NFTs to receive rewards. MOPN includes four types of assets:
MT Token is the core asset within the game, and all economic activities are related to MT. Players place NFTs on a plot and can earn MT rewards based on the NFT’s score weight and placement time. Of the MT produced by NFT placement mining, 90% is awarded to the NFT owner, 5% to the plot owner as land rent, and 5% to the NFT’s IP treasury (such as BAYC’s in-game treasury)—the Collection Vault, equivalent to a tax.
In MOPN’s design, plots belong to an NFT called MOPN Land. There are a total of 10,981 MOPN Lands, each covering 91 plots, collectively encompassing nearly one million plots on the map. Lands can be obtained through minting and auctions. Once a player acquires a Land, they can place it on the map, activating dormant plots. Only activated plots can have NFTs placed on them. Any player can place NFTs on plots under a Land, but 5% of the earnings must be shared with the Landowner.
An interesting rule in MOPN is that you can use “bombs” to clear other NFTs around you. The game stipulates that within a two-plot distance from where you place your NFT, there cannot be NFTs from other IP series (e.g., BAYC and Pudgy Penguins are conflicting IPs). If you must place your NFT on such a plot, you need to use a bomb to remove the conflicting NFTs. The final effect is that within a two-plot distance around each NFT, only similar NFTs are present.
In summary, the game’s rules are quite simple: place your NFT on a plot to get mining rewards, share a portion of the output with the Landowner, and ensure there are no dissimilar NFTs around you. Additionally, MOPN equips participating NFT collections with a specific Collection Vault treasury. Since MOPN is a full-chain game, market data related to NFTs should not rely on oracles. Thus, MOPN sets up Collection Vaults to obtain off-chain information like NFT market prices through specific mechanisms (to be explained later). These rules build an economic system centered around the MT Token, as shown in the figure. In the following text, we will briefly introduce MOPN’s implementation from the perspective of a game designer.
MOPN creates an ERC-6551 abstract account for each NFT participating in placement mining. The ERC-6551 account is a core component of the MOPN game system, with a large part of the business logic relying on it.
The ERC-6551 standard originates from EIP-6551, which aims to create a dedicated AA wallet account for NFTs, giving them many of the same rights as a regular Ethereum user. For instance, you can register an ERC-6551 account for a BAYC NFT and use this account for transactions and on-chain operations. When a user transfers the NFT, the ownership of the corresponding ERC-6551 account is also transferred.
Significance of ERC-6551
Consider a gaming scenario where an Ethereum address A owns a virtual game character named Bob, which is implemented as an ERC-721 NFT. Bob holds various items (e.g., hats, shoes, weapons) and other assets (e.g., gold ingots) that might be represented as ERC-20, ERC-721 tokens, etc. Although these items are considered to belong to Bob in the game, from the perspective of the underlying contracts, these assets are linked to address A.
If the controller of address A decides to sell Bob, they would need to transfer Bob and all associated game assets individually to the buyer, which is cumbersome and impractical. EIP-6551 aims to address this by creating a dedicated wallet account for the virtual game character Bob to manage its items and assets, streamlining and rationalizing the entire interaction process.
ERC-6551 Modules
ERC-6551 consists of two main modules:
Registry: This is a factory contract where users can submit their NFT contract address and tokenId. The Registry generates a unique fixed address for the user’s NFT and deploys the account at this address.
Account Implementation: This module covers the specific implementation details of the ERC-6551 account. Different projects can adopt implementation schemes that suit their needs.
MOPN has equipped itself with its own Registry and Account Implementation modules. Users can input the NFT contract address and tokenId to deterministically create a dedicated ERC-6551 account for the NFT, catering to various game operation requirements.
As previously mentioned, the first step for users upon entering the game is to select an NFT and place it in an appropriate area. The following image shows a portion of the MOPN map:
On the game map, we can observe NFTs belonging to different IP collections and tiles of various colors. Each NFT radiates the tiles around it within one grid into a specific color. Only NFTs of the same type can be placed adjacent to each other, while different types of NFTs must be separated by at least two tiles. MOPN uses hexagonal tiles and establishes a coordinate system as shown in the following image:
Clearly, each tile on the map has a unique coordinate, and the entire map is divided into 10,981 regions, designated as 10,981 MOPN Lands. Each Land has its unique LandId. In MOPN’s design, Land owners can charge rent from NFT placers, meaning 5% of the NFT mining revenue will flow into the Land owner’s ERC-6551 account. Each placed NFT has a titleAccounts field in its ERC-6551 account, indicating the collection to which the NFT belongs.
The content mentioned above is only the tip of the iceberg of the entire MOPN mechanism design. From the perspective of a game designer, you still have to consider a lot of troublesome issues. first,In the early stages of the game, you have to consider which NFTs can participate in the MOPN game. If you do not limit the types of NFTs, someone will definitely place a large number of junk NFTs on the map to quickly obtain a large amount of MT Token income, which will eventually lead to serious token inflation. The essence is the anti-witch issue.In order to avoid such situations, restrictions must be taken to only allow specific types of NFTs to participate in the game. Before MOPN officially launches, it uses the following formula to score all NFT collections on the market:
Before the official launch of MOPN, the following formula was used to score all NFT collections on the market:
Below is the statistical table provided by the MOPN officials based on recent snapshot information. In the table, there is a column named STAGES, indicating when the NFT collection can participate in the game. NFT series marked as Stage1 can participate in placement mining at the game’s launch, while Stage2 and Stage3 will need to wait until the game reaches a certain stage.
Anyone can place NFTs. The person placing the NFT does not have to be the owner of the NFT, but only the NFT owner can directly claim the mining rewards from placing the NFT. Afterward, a portion of the rewards can be distributed to the person who placed the NFT on behalf of the owner. This person, who places the NFT without owning it, is referred to as an “Agent.” According to MOPN’s design, when the NFT owner claims the mining rewards or when the NFT is moved or destroyed, the Agent can receive a portion of the mining rewards. The specific amount is:The specific value is:
where nnn is the number of Agents already associated with that particular NFT series (e.g., if nnn people have acted as Agents for BAYC NFTs). Clearly, the earlier an Agent participates in the game, the more rewards they can earn.
This question needs to be answered in conjunction with MOPN’s economic model. The total supply of MT is 1 billion tokens. Every time a Blast block is created (approximately every 2 seconds), MOPN releases a certain amount of token rewards to the NFT miners. Initially, MT is set to release 60 tokens per block, and every 50,000 blocks (1.2 days), the MT release amount decreases by 0.3%. The specific release curve is as follows:
This question needs to be answered in conjunction with MOPN’s economic model. The total supply of MT is 1 billion tokens. Every time a Blast block is created (approximately every 2 seconds), MOPN releases a certain amount of token rewards to the NFT miners. Initially, MT is set to release 60 tokens per block, and every 50,000 blocks (1.2 days), the MT release amount decreases by 0.3%. The specific release curve is as follows:
Tile Point is categorized based on the block where the NFT is placed, divided into three tiers: +1, +5, and +15, corresponding to three types of blocks with different rarity levels on the map.
Finally, each NFT receives a portion of the MT rewards released per block based on its Point’s proportion to the total Points of all participating NFTs.
Previously, we mentioned that when placing an NFT on the MOPN map, you must declare the LandId of the target plot. LandID represents the LAND number to which the plot belongs. When the NFT placer claims the MT mining reward, 5% of the MT flows into the landlord’s account of the LAND to which the plot belongs (each landlord controls different LAND). In MOPN, the function of Land is to manage plots, and the relationship between plots and NFTs is like that between flowers and flowerpots. Therefore, LAND is also one of the core assets in the game.
(Land is essentially an NFT, with coordinates such as (-48, 10) marked in the lower-left corner representing the center point plot of this Land on the MOPN map.) Ownership of LAND is expressed in the form of NFTs, and all LAND NFTs are issued in two ways: by minting with ETH or through auction minting with MT Tokens. The model for minting Land with ETH is relatively simple. Players can spend a certain amount of ETH to directly mint and obtain Land. The minting price for the first Land is 0.02 ETH, and each subsequent Land increases in price by 0.1% compared to the previous one.
The process of auction minting Land with MT is relatively more complex, adopting a Dutch auction model. The starting price for each Land is 1,000,000 MT, and the starting price is automatically reduced by 1% every 5 rounds. After one round of auction is completed, the next round will automatically start. All MT used to purchase/mint Land will be burned, marking the first method in the MOPN game where MT is destroyed.
The Bomb mechanism comes into play when placing an NFT: if there are alien NFTs within two plots of the target plot, you must use a Bomb to blow up the alien NFTs, clearing their plots. A Bomb is a method to forcibly remove alien NFTs from the map and is obtained by burning MT. Once used, the Bomb is destroyed, marking the second scenario in MOPN where MT is burned.
The pricing of the Bomb follows the formula:
where MT Production is the MT output mined from the target land plot, titles represent the number of land plots this bomb aims to clear, and bomb production represents the usage of Bombs within the past 7200 blocks. The more MT mined from the target land plot or the more frequently Bombs are used over a period of time, the more expensive the Bomb becomes.
Previously, we mentioned that MOPN allocates rewards to NFTs placed on the map according to a scoring system called MOPN Point, which includes Title Point and Collection Point. Title Point is determined by the rarity of the land plot where the NFT is located, while Collection Point is related to the vault exclusive to the NFT collection (e.g., BAYC) within the game. Collection Point measures the MT reserves in the NFT vault. The more MT in the vault, the higher the mining income for that type of NFT. The initial calculation formula is:
In this context, Vault $MT refers to the MT reserves of the NFT vault. There are two ways to add MT to the vault: mining taxes and staking. The first method, as mentioned earlier, automatically contributes a 5% tax to the vault whenever any NFT mining rewards are extracted (another 5% goes as land rent). The second method is voluntary staking, where staking MOPN into a specific NFT vault can yield APY.
The NFT vault in MOPN also has other functions, such as providing market price data for NFTs. Since MOPN revolves around NFTs, their market price is a crucial data point. However, as an on-chain game, MOPN aims to avoid relying on centralized components like oracles. To address this, MOPN has created an NFT trading platform similar to an AMM (Automated Market Maker). This platform allows players to buy and sell NFTs, and various arbitrage activities ensure that the NFT prices on this platform remain consistent with external markets. Thus, the system can ascertain the external market price of NFTs without relying on oracles.
The MOPN NFT trading platform adopts a model similar to Uniswap’s, essentially a point-to-pool system. However, unlike ERC-20 AMMs, NFT AMMs are harder to implement because NFTs are non-fungible, meaning everyone has their subjective valuation for a specific NFT, making it impossible to price an entire IP series directly. Additionally, the limited number of NFTs and their lower liquidity compared to fungible tokens (FTs) make transactions more challenging. To address this, MOPN combines auctions with AMM, where the vault contract directly participates in NFT trading, contributing liquidity.
The process of the NFT vault acquiring NFTs from players follows an automatic bidding system. The initial bid is 20% of the MT balance in the vault. After the first transaction, the starting buy price for the next acquisition is set at 75% of the vault’s last asking price, increasing by 0.05% per block, with a cap at 20% of the vault balance. If an NFT holder finds the offer acceptable, they can sell their NFT. The vault then switches to selling the acquired NFT, initiating a Dutch auction with a starting price of 125% of the acquisition price, decreasing by 0.05% per block, down to a minimum of 1 MT. After the auction, 0.5% of the transaction price is burned, representing the third method of MT destruction. Once the NFT is sold, the vault can resume buying NFTs, providing new offers, and the cycle continues.
Compared to the conventional x⋅y=kx \cdot y = kx⋅y=k model, the auction-based generalized AMM helps each NFT achieve a fair price, ultimately leading to near-optimal transactions. If MOPN gains enough influence, many NFTs might trade this way, potentially enhancing NFT liquidity. This auction mechanism ensures proper NFT pricing, so the vault’s transaction prices can be roughly considered the current floor price of the NFT collection, replacing the oracle’s feed function.
Returning to the MOPN Point system, due to the possible instability of the vault’s MT reserves from NFT buying and selling, the Point calculation formula changes for fairness and stability after an NFT is sold from the vault:
where the vault last ask-accept price is the MT amount obtained from the last sale of the NFT by the vault, and vault $MT is the MT deposit in the vault before the NFT sale.
From a technical implementation perspective, MOPN introduces ERC-6551 accounts to enhance the system’s flexibility and composability while adopting an auction-based NFT trading platform to provide a point-to-pool NFT market. This internal market quotation mechanism addresses the dependency on oracles in on-chain games. As an easily comprehensible example of an on-chain game economic model design, MOPN is worth studying in depth.