Flip Docs
  • 🍏Introduce
  • πŸ§€Why Choose Flip?
  • Getting Started
    • πŸ•ΉοΈQuickstart
      • 🍳Launch NFT
      • 🎼Trading NFT
  • Basics
    • πŸ΄β€β˜ οΈArchitecture
    • πŸ’½Core
      • πŸ₯ŽSmart Pricing
      • πŸ€–Issuance Mechanism
      • πŸ§€Trading System
      • πŸ›žRoyalty Mechanism
      • πŸŒ‰NFT Cross-Chain
    • πŸ—ΊοΈRoadmap
Powered by GitBook
On this page
  • Initial Price
  • Base URI
  1. Getting Started
  2. Quickstart

Launch NFT

PreviousQuickstartNextTrading NFT

Last updated 26 days ago

Enter the Launch interface, where you need to fill in the following key information.

Below, we will detail two critical parameters: Initial Price and Base URI.

Initial Price

Initial Price serves as the base pricing for the NFT. Flip implements an innovative dynamic pricing mechanism (bonding curve), where the NFT price automatically adjusts based on the minted quantity. The specific pricing formula is:

Where:

  • initialPrice: The base price you set for the NFT

  • supply: The current number of minted NFTs

  • maxSupply: The maximum total supply of NFTs

Price Curve Characteristics:

  1. Follows a parabolic trajectory

  2. Early minting stage: Lower price with a fast growth rate

  3. Later minting stage: Higher price with a slower growth rate

From the above curve consensus, we can conclude: when supply equals maxSupply, the price reaches its maximum, which is 2001 Γ— initialPrice.

For example, when initialPrice = 0.001 ETH and maxSupply = 10,000, the price ceiling approaches 2 ETH.

Base URI

In the smart contract, the Base URI is used to concatenate suffixes to retrieve information for individual NFTs and NFT collections. The implementation is as follows:

function _baseURI() internal view override returns (string memory) {
    return baseURI;
}

// Retrieve the metadata URL for a single NFT
// Use baseURI as the base path, appending tokenId and filename
function tokenURI(uint256 tokenId) public view override virtual returns (string memory) {
    _requireOwned(tokenId);
    return bytes(baseURI).length > 0 ? string.concat(baseURI, "/", tokenId.toString(), ".json") : "";
}

// Retrieve the metadata URL for collection information
// Use baseURI as the base path, appending the collection metadata filename
function contractURI() public view returns (string memory) {
    return bytes(baseURI).length > 0 ? string.concat(baseURI, "/collection.json") : "";
}

Thus, the rules for accessing NFT metadata are:

Single NFT Metadata describes the attributes of an individual NFT, such as name, description, image, etc. The file must follow the ERC-721 standard, with a basic format as follows:

{  
  "name": "FLIP #1",  // NFT name, recommended to include token ID
  "description": "FLIP NFT is an NFT standard constructed using the Bonding Curve algorithm", 
  "image": "https://ipfs.io/ipfs/bafkreicxcqiu6xur2sqp5vnpbaq5ksy43pbe3i3ymldkqogmtg5erq4nje"
}

Collection Metadata describes the attributes of the collection, such as name, symbol, description, image, banner image, etc. The file must follow the standard format, as shown below:

{
  "name": "FLIP TEST",
  "symbol": "FLIP",
  "description": "FLIP NFT is an NFT standard constructed using the Bonding Curve algorithm",
  "image": "https://ipfs.io/ipfs/bafkreicxcqiu6xur2sqp5vnpbaq5ksy43pbe3i3ymldkqogmtg5erq4nje",
  "banner_image": "https://ipfs.io/ipfs/bafkreigqflltl7xwqv6wmp2yxgnosdlmlr2d5y36ne2zm2vtmiapgozawa"
}

Once all parameters are defined, store the content in a publicly accessible link, such as decentralized storage like IPFS. The recommended storage structure is:

Project/
β”œβ”€β”€ Metadata/
β”‚ β”œβ”€β”€ collection.json # Collection metadata
β”‚ β”œβ”€β”€ 1.json # NFT #1 metadata
β”‚ β”œβ”€β”€ 2.json # NFT #2 metadata
β”‚ └── ... # Other NFT metadata
└── Images/
  β”œβ”€β”€ 1.png # NFT #1 image
  β”œβ”€β”€ 2.png # NFT #2 image
  └── ... # Other NFT images

Note: When storing on decentralized storage like IPFS, first upload the images in the Images folder, then replace the image URLs in the metadata with the corresponding CIDs before uploading the Metadata folder.

Base URI defines the root path for accessing NFT metadata, determining how information for each NFT is retrieved. Flip is fully compatible with and supports .

For a single NFT: Access via to retrieve its information (where tokenId starts from 1).

For the NFT collection: Access via to retrieve its information.

πŸ•ΉοΈ
🍳
OpenSea’s metadata standards
contract-level metadata
https://baseURI/[tokenId].json
https://baseURI/collection.json