Finalize a Presale
Watch the video tutorial: How to Finalize a Presale on Pinksale
Overview
- Finalization is possible after your presale ends and meets its softcap, or if it reaches the hardcap.
- If your token has special transfer rules (like fees, rewards, or max transaction limits), you must exclude the Pinksale presale contract address from these rules first.
- This usually involves interacting directly with your token's smart contract via a block explorer like BSCScan/Etherscan.
- Once exclusions are set, you can finalize the pool through the Pinksale interface.
- If you encounter issues, consider seeking help from experienced smart contract developers.
Note: If you have trouble finalizing after following these steps, especially if you suspect a smart contract issue, consult a trusted developer. You can find experienced developers here: https://docs.pinksale.finance/service/contract-developers.
Steps
Follow these steps to finalize your presale and list your token:
Important Pre-requisite: If your token's smart contract includes features like transaction fees (tax), reflection rewards, or maximum transaction amount limits, you must exclude the Pinksale presale contract address from these features before attempting to finalize. Failure to do so will likely cause the finalization process to fail.
-
Find Your Token Contract Address and Pool/Presale address: Locate your token's contract address. You can usually find this on a block explorer like BSCScan (if your token is on the BNB Smart Chain) or directly on your Pinksale presale page by clicking the "token address" link.
Find your Pool/Presale contract address:
-
Connect Wallet to Contract on Block Explorer: Navigate to your token's contract page on the relevant block explorer (e.g., BSCScan). Go to the Contract tab, then select Write Contract. Click Connect to Web3 to connect your wallet.
Note: You must connect using the wallet address that is the owner of the token contract.
-
Exclude Presale Address from Fees/Limits:
- Once connected, look for a function related to excluding addresses from fees/limits. Common names are
excludeFromFees
,setExcludedFromRewards
,excludeFromMaxTx
, or a combinedexclude
function. Use your browser's find function (Ctrl+F or Cmd+F) and search for "exclude". - In the input field for this function (e.g.,
account
or_address
), paste your Pinksale presale contract address.
- Once connected, look for a function related to excluding addresses from fees/limits. Common names are
- If the function requires a boolean input (like
exclude(address, bool)
or similar showingexclude (bool)
in the interface) and asks whether to exclude, inputTrue
.
- Click the Write button for that function.
Note: Some contracts might use the term "exempt" instead of "exclude". If you don't find "exclude", search for "exempt" and follow the same process.
-
Confirm Exclusion Transaction: Your wallet (e.g., MetaMask) will pop up asking you to confirm the transaction. Review the details and the gas fee. If correct, click Confirm. Wait for the transaction to be confirmed on the blockchain.
-
Finalize on Pinksale: Go back to your presale page on the Pinksale website. Find the Pool Actions section. You should now see an active Finalize button (assuming the presale met its conditions: softcap met & ended, or hardcap reached). Click Finalize.
Note: There might also be an option to cancel the presale if certain conditions apply (usually if the softcap was not met).
-
Confirm Finalization Transaction: Your wallet will pop up again for the finalization transaction. This action typically triggers token distribution to presale buyers and adds liquidity to the DEX (if you chose Auto Listing). Review the transaction and gas fee, then click Confirm.
Once this transaction is confirmed on the blockchain, your presale is finalized!
Q&A
- Q1: When exactly can I finalize my presale?
- A: You can finalize once the presale's official end time has passed AND the softcap has been met, OR as soon as the hardcap is reached (even if the end time hasn't passed yet).
- Q2: Why is excluding the presale address from fees/limits so important?
- A: The Pinksale presale contract needs to perform large token transfers (distributing tokens to buyers, adding liquidity) during finalization. If your token's contract tries to charge fees on these transfers or block them due to transaction limits, the finalization process will fail. Excluding the presale address allows these necessary actions to occur smoothly.
- Q3: What if my token contract uses "exempt" instead of "exclude"?
- A: Function names can vary. If you can't find a function containing "exclude", look for one containing "exempt" that takes an address as input. Use that function in Step 3 instead, inputting your presale address.
- Q4: What actually happens when I click "Finalize"?
- A: Clicking "Finalize" initiates the process where Pinksale distributes the purchased tokens to your presale contributors, sends the appropriate percentage of raised funds (and corresponding project tokens) to the DEX to create the liquidity pool (if Auto Listing was selected), locks the liquidity for the specified duration, and transfers the remaining raised funds to the project owner's wallet.
- Q5: Do I still need to exclude the address if I chose Manual Listing?
- A: Yes, typically you still need to exclude the presale address. While Pinksale won't be adding liquidity automatically, it still needs to transfer the purchased tokens to the buyers without interference from fees or limits.
Troubleshooting
- Q: The "Finalize" button on Pinksale is greyed out or not visible.
- A: Check the following:
- Has the presale end time actually passed?
- Has the softcap been met? (If the hardcap was reached, it should be available regardless of end time).
- Is your wallet connected to the Pinksale website correctly? Try reconnecting.
- Refresh the page; sometimes, the interface needs updating.
- A: Check the following:
- Q: My transaction to "exclude" or "exempt" the presale address keeps failing.
- A: Verify these points:
- Are you connected to the block explorer's "Write Contract" section with the token owner wallet?
- Did you paste the correct Pinksale presale contract address into the function's input field?
- Do you have enough native currency (like BNB/ETH) in the owner wallet to cover the gas fees?
- Is the network congested? Try again later or consider increasing the gas limit slightly (advanced).
- Did you use the correct function name ("exclude", "exempt", etc.) as defined in your specific token contract?
- If the function requires a boolean
True
/False
input, did you provide it correctly (e.g., typingTrue
)?
- A: Verify these points:
- Q: The "Finalize" transaction itself is failing after I click the button on Pinksale.
- A: Common causes include:
- Insufficient Gas: Ensure your connected wallet has enough native currency for the finalization gas fees.
- Exclusion Not Done Correctly: Double-check that the transaction to exclude the presale address (Step 3 & 4) was successfully confirmed on the blockchain before attempting to finalize.
- Network Congestion: High network traffic can cause timeouts or failures. Try again later.
- Contract Issue: There might be an underlying issue in your token's smart contract logic that conflicts with finalization. If problems persist, consulting a developer (https://docs.pinksale.finance/service/contract-developers) is recommended.
- A: Common causes include:
- Q: I think I excluded the wrong address, or I forgot to exclude the presale address before trying to finalize.
- A: If you excluded the wrong address, you might be able to call the function again with the correct address. If you forgot to exclude the presale address and the finalize function is now stuck or failing repeatedly, you likely need help from a smart contract developer to potentially reset state or manually handle parts of the finalization if possible. Trying to finalize without proper exclusions can lead to locked funds or tokens.