Pundi
Pundi AIPundi X
  • 🤖Pundi AI overview
  • 🈁Pundi AI Data Platform
    • Data stakeholders
    • Data Labelling
    • Pundi AI Data Platform (Alpha Testnet) - User Guide
    • FAQ
  • 🦾Pundi AIFX Omnilayer
    • Pundi AIFX
    • Installation Pundi AIFX
    • Setup Node
      • Full node with Binaries
      • Full node with Docker
      • Snapshot Guide
      • Node Monitoring Device
    • Validators
      • Validator Overview
      • Setting Up a Validator for Pundi AIFX
      • Validator Recovery
      • Validator FAQ
      • Validator Security Notice
      • Migration Best Practices
      • Transfer Validator Permissions
    • Delegators
      • Delegators FAQ
      • Delegator CLI Guide
      • Delegator Security Notice
    • Pundi AIFX Tutorials
      • Pundi AIFX CLI Commands
      • Cloud Setup
      • Testnet faucet
      • Ledger Integration for fxcored
      • Sentry Nodes
      • Account Migration Guide (CLI)
    • Upgrade Instructions
      • Cosmovisor Upgrade Guide v8.5.x
        • Cosmovisor Integration - Binaries
        • Cosmovisor Integration - Docker
      • Manual Upgrade Guide v8.5.x
        • Binaries - Upgrading Your Node
        • Docker - Upgrading Your Node
      • Upgrade Versions
        • v2.2.0 Upgrade Instructions
        • v3.1.0 Upgrade Instructions
        • v4.2.1 Upgrade Instructions
        • v5.0.0 Upgrade Instructions
      • Upgrade FAQ
    • Deploying on Pundi AIFX EVM
      • Products
      • MetaMask
        • Download and Install MetaMask
        • Add Network
        • Configure Custom Tokens
        • Create and Import Accounts
      • Connect Wallet to Dapps
        • Connect using MetaMask
        • Connect using Pundi Wallet (Wallet Connect)
      • With Remix
      • With Truffle
      • With Hardhat
      • Cross-Chain Bridges
        • Bridging Tokens from other networks
        • Pundi Gravity Bridge
    • DApps and Infra
      • Margin X Swap
      • Pundi Wallet
      • PundiScan
      • Baklava Space
      • Safe Multisig
      • PortfolioX
      • Token Factory
    • Developers
      • Pundi AIFX Network
      • Pundi AIFX Modules
      • Pundi AIFX JSON RPC
      • Pundi AIFX REST API
      • Web3 JSON RPC
        • JSON RPC Server
        • Namespaces
        • JSON RPC Methods
        • Events
      • Support Leap
      • Third Party Price Oracles
      • Contract Deployments
      • Pundi AIFX Cross Chain
        • sendToFx
        • f(x)Core
        • ibc
        • Target
      • Precompiled Contracts
        • CrossChain Precompiled
        • Staking-V2 Precompiled
      • Pundi AIFX SDKs
        • Python SDK
        • JavaScript SDK
      • Contract Monitoring
    • Pundi X Chain (under Pundi X)
      • Getting Started
        • Install Pundi X (PundiXChain)
        • Setup Node
          • Full node with Binaries
          • Full node with Docker
          • Snapshot Guide
          • Node Monitoring Device
          • Node Peers
      • Validators
        • Validator Overview
        • Setting Up a Validator for PundiXChain
        • Validator Recovery
        • Validator FAQ
        • Validator Security
        • Sentry Nodes
      • Delegators
        • Delegator FAQ
        • Delegator Overview
        • Delegator CLI Guide
      • Pundi X Tutorials
        • Pundi X CLI Guide
        • Ledger Integration for pundixd
        • Testnet Faucet
        • Cloud Setup
      • Upgrade Instructions
        • Cosmovisor Integration - Binaries
        • Cosmovisor Integration - Docker
        • Support keplr
      • Developers
        • Pundi X Network
        • Pundi X Protobuf
        • Pundi X gRPC & REST
        • Pundi X JSON RPC
        • Pundi X Cross Chain
          • ibc
  • 👛PURSE+
    • Purse Box
      • How many NFTs can I mint?
      • Minting (Etherscan)
      • Minting (Pursetoken.com)
    • PURSE+
      • Links
    • Bridging
      • BSC -> Ethereum
    • Protocols
      • LP Restaking Farms
        • How to Use Farms
        • Contract on BscScan
      • PURSE Staking
      • PURSE Staking Rewards
        • Campaigns
      • PURSE Retroactive Rewards
        • Campaigns
    • Contracts
      • Ethereum
      • Binance
      • Function X
    • IBC
      • PUNDIX Chain
    • PURSE Token
      • Background
      • ERC404 intro
      • Accounting of Balances
      • Minting PURSE NFT(s)
      • Transferring PURSE
      • Maintaining PURSE NFT(s)
      • NFTs in Queue
      • Token IDs
  • 🎡Pundi AI MM Agent
    • Why Market Making
    • Traditional MM vs. AMM
    • AI MM Agent: Bridging the Gap
    • Use Cases
    • Train & Launch (Step 1 & 2)
    • Flywheel (Step 3)
    • How the AI MM Agent Works in Detail
    • Why This is Powerful
  • 🛍️Pundi AI Data Marketplace (soon)
  • 🥇PUNDIAI Token Overview
    • Revenue generation flywheel
    • vePUNDIAI
      • how to bribe with vePUNDIAI
    • Protocol pool
  • Governance
    • Governance Proposal Information
      • EGF Info
      • EGF Grants Program
      • Application Template
      • Successful Grant Applicants
      • Launching an EGF Proposal
  • Links
Powered by GitBook
On this page
  • Example
  • Scenario 4: Minting an NFT
  1. PURSE+
  2. PURSE Token

Minting PURSE NFT(s)

PreviousAccounting of BalancesNextTransferring PURSE

Last updated 8 months ago

When it comes to minting NFTs from a 404 token, most 404 tokens that have been deployed would behave in the following way: if an address’s balance reaches the required amount of tokens required to represent 1 NFT, an NFT will be minted to the address automatically. No separate transaction from the address is required to mint an NFT. This is, however, not the case for PURSE.

In PURSE, the minting of a PURSE NFT must be a transaction that an address voluntarily executes. That is, even if an address successfully accumulates enough PURSE tokens, they must still execute the mintERC721 function successfully in the PURSE contract in order to mint their PURSE NFT(s). The number of NFTs mintable at once would depend on an address’s Inactive Balance (IB), and whether they have enough Ether (ETH) to pay for the total minting cost for each mintable NFT. The contract only accepts the exact amount of ETH required for the mint transaction; any amount that is not exact will result in a failure to mint the PURSE NFT(s).

PURSE required from IB = no. of NFTs to mint ∗ ERC20 equivalent amount for 1 NFT\small PURSE \ required \ from \ IB \ = \ no. \ of \ NFTs \ to \ mint \ * \ ERC20 \ equivalent \ amount \ for \ 1 \ NFTPURSE required from IB = no. of NFTs to mint ∗ ERC20 equivalent amount for 1 NFT
payable amount in ETH = mintingCost per NFT ∗ no. of NFTs to mint\small payable \ amount \ in \ ETH \ = \ mintingCost \ per \ NFT \ * \ no. \ of \ NFTs \ to \ mintpayable amount in ETH = mintingCost per NFT ∗ no. of NFTs to mint

The rationale behind this design is to give users the flexibility to participate in different token types. Because of how the underlying ERC20 contract is preserved in PURSE, even if users choose not to mint any PURSE NFTs, PURSE would still function exactly as before - like any other ERC20 token. And if users decide to mint PURSE NFT(s), they can participate in new avenues for trading and asset management.

Example

Scenario 4: Minting an NFT

For Bob to obtain a PURSE NFT, he would have to execute mintERC721 in the PURSE contract; and he would also need to have an appropriate amount of PURSE in his IB and supply the exact mintingCost, which is in Ether (ETH), as part of the transaction. Thus for Bob to successfully mint 1 PURSE NFT, he needs to have at least 1,000,000 PURSE in his IB, and he also has to provide exactly:1 ∗ mintingCost1 \ * \ mintingCost1 ∗ mintingCost of ETH, together with the transaction.

After minting, Bob’s balance of PURSE would be: IB = 0 PURSE, AB = 1,000,000 PURSE, and TB = 1,000,000 PURSE; Bob will also have 1 PURSE NFT in his address.

Remember how Alice transferred a total of 1,000,000 PURSE to Bob () a while back?

Assuming Bob didn’t do anything after Alice transferred all that PURSE to him, Bob’s Total Balance (TB) will be 1,000,000 PURSE, where Inactive Balance (IB) = 1,000,000 PURSE and Active Balance (AB) = 0 PURSE. Bob will be able to transact with 1,000,000 PURSE ERC20, but he will not have any PURSE NFT in his address. Note that all regular transfers called by the transfer function will just be a regular ERC20 transfer, and this only affects values in the IB. This will be elaborated in the section.

Notice that in this scenario, Bob's TB of PURSE started at 1,000,000 PURSE and ended unchanged at 1,000,000 PURSE. Like in , minting a PURSE NFT does not deduct PURSE from the Total Balance**;** instead, the amount of PURSE required to mint the PURSE NFT is just moved from the Inactive Balance to the Active Balance, and it is still accounted for in the Total Balance.

👛
Transferring PURSE
Scenario 2
Scenario 1