Finalize a Presale (Manual Listing)
Overview
This guide explains how to finalize your successfully completed presale pool on Pinksale. Finalizing is the crucial last step that typically does two main things:
- Transfers the raised funds (e.g., BNB, ETH) to your project wallet.
- Allows investors to claim their purchased tokens OR triggers the automatic listing process (if you chose Automatic Listing).
Important: If your project's token contract includes special functions like transaction fees (taxes), rewards distributions, or maximum transaction amount limits, you must perform an extra step before clicking "Finalize" on Pinksale. You need to manually tell your token contract to ignore these functions for the Pinksale presale contract address. This prevents these functions from interfering with the finalization process (like token distribution or liquidity addition).
This guide covers both the special exclusion step (if needed) and the standard finalization process on Pinksale.
(For a visual guide, check the original video: https://www.youtube.com/watch?v=5lxR3NnWjwc)
Steps
Phase 1: Exclude Presale Contract from Fees/Rewards/Max TX (Only if your token has these features!)
If your token does not have transfer fees, rewards, or max transaction limits coded into its contract, you can likely skip directly to Phase 2.
- Find Your Presale Contract Address: Go to your presale page on Pinksale. Find and copy the Presale Address (sometimes called Pool Address). This is different from your token address.
- Find Your Token Contract on Explorer: Go to the blockchain explorer for your network (e.g., BscScan.com for BSC, Etherscan.io for Ethereum). Search for your Token Address. Click on it to view the contract details.
- Navigate to Write Contract: On your token contract's page on the explorer, find and click on the "Contract" tab, then the "Write Contract" sub-tab.
- Connect Your Wallet: Click the "Connect to Web3" button (or similar wording like "Connect Wallet"). Make sure you connect using the Owner Wallet – the address that has administrative control over your token contract.
- Find the Exclusion Function:
- Look for functions related to excluding addresses from fees, rewards, or limits. Common names are
excludeFromFees
,setExcludedFromReward
,excludeFromMaxTransaction
,setExcludeFromMaxTx
, or simply**exclude**
or**exempt**
. You might need to use your browser's find function (Ctrl+F or Cmd+F) and search for "exclude" or "exempt". - Note: Your contract might have separate functions for fees, rewards, and max limits. You may need to repeat the exclusion for each relevant function if they aren't combined into one.
- Look for functions related to excluding addresses from fees, rewards, or limits. Common names are
- Input Presale Address & Settings:
- In the input field for the exclusion function (usually asking for an
address
), paste the Pinksale Presale Address you copied in Step 1. - If there's a second field asking for a boolean value (like
_isExcluded
orexclude (bool)
), enter**true**
. This activates the exclusion.
- In the input field for the exclusion function (usually asking for an
- Write to Contract: Click the "Write" button for that function.
- Confirm Transaction: Your connected wallet (MetaMask) will pop up, asking you to confirm the transaction. It will show an estimated gas fee. Review it and click "Confirm".
- Repeat if Necessary: If your contract has separate exclusion functions for fees, rewards, and max transaction limits, repeat steps 5-8 for each one, using the same Pinksale Presale Address.
Phase 2: Finalize the Pool on Pinksale
Once any necessary exclusions are done (or if your token didn't require them), you can finalize on Pinksale:
- Go to Your Presale Page: Navigate back to your presale pool page on the Pinksale website. Ensure your Owner Wallet is still connected.
- Find Pool Actions: Look for the section managing the pool, often labeled "Pool Actions" or similar.
- Click Finalize: Click the "Finalize" button.
- Note: This button usually only becomes active after the presale end time has passed AND the Soft Cap has been reached.
- Confirm Transaction: MetaMask (or your connected wallet) will pop up asking for confirmation. This transaction executes the finalization logic (transferring funds, distributing tokens/preparing for listing). Review the gas fee and click "Confirm".
- Wait for Confirmation: Let the transaction complete on the blockchain. Once confirmed, your pool is finalized!
Phase 3: Set Token Claim Time for Investors
After successful finalization, you need to enable investors to claim their tokens (this applies mainly if Pinksale isn't automatically handling everything post-finalization, especially common with Manual Listing):
- Find Claim Option: On your finalized presale page (in the "Pool Actions" or similar area), look for a button like "Set Claim Time".
- Choose Claim Method:
- Claim Right Now: Click this if you want investors to be able to claim their tokens immediately.
- Set Claim Time: Click this to specify a future date and time when claiming will become available.
- Confirm (if needed): Your wallet might ask for another transaction confirmation to set the claim time on the contract. Confirm if prompted.
Q&A (FAQs)
- Q: Why do I need to "exclude" the presale address? My token works fine.
- A: If your token charges a fee on every transfer (tax), tries to distribute rewards on transfers, or limits how many tokens can be moved at once, these rules can block the Pinksale contract from performing its finalization tasks (like sending tokens to hundreds of buyers or adding a large chunk to liquidity). Excluding the Pinksale presale contract address tells your token contract, "Don't apply these special rules to this specific address."
- Q: Which tokens need this exclusion step?
- A: Tokens with code for automatic liquidity generation fees, reflection rewards (RFI), marketing/charity taxes on transactions, or maximum wallet/transaction limits. If your token is a plain standard token (like a basic ERC-20/BEP-20) with no such features, you likely don't need this step.
- Q: Where do I find the "Presale Address"?
- A: On your specific presale pool's page on the Pinksale website. It's usually displayed clearly near the top or in the pool details section. It's not your token's address.
- Q: What if my contract uses
exempt
instead ofexclude
?- A: Use the
exempt
function following the same steps. Input the Pinksale Presale Address andtrue
(if required), then Write/Confirm. The naming varies between contracts, but the purpose is the same.
- A: Use the
- Q: What if I can't find any
exclude
orexempt
function in my contract's "Write Contract" section?- A: This could mean your contract doesn't have these features, or the function isn't publicly accessible/visible in this way, or it's named something completely different. If your token does have fees/rewards/limits and you can't find the function, you must consult your contract developer.
- Q: What happens after I click "Finalize"?
- A: Raised funds are sent to you. If you chose Automatic Listing, Pinksale usually proceeds to list on the DEX and add liquidity. If you chose Manual Listing, the token distribution process happens, but you still need to list on the DEX manually. Investors can claim tokens once you enable claiming (Phase 3).
- Q: When can I click "Finalize"?
- A: Typically, only after the presale's scheduled end time has passed AND the Soft Cap fundraising goal has been met or exceeded.
Troubleshoot
- Problem: The "Finalize" button on Pinksale is greyed out or not clickable.
- Solution: Check if the presale end time has actually passed. Verify if the Soft Cap was successfully reached. Ensure you are connected to Pinksale with the correct Owner Wallet.
- Problem: I clicked "Finalize", confirmed in MetaMask, but the transaction failed.
- Solution 1: Ensure you have enough native currency (BNB, ETH, etc.) in your Owner Wallet for the gas fees. Network congestion can cause failures; try again later or slightly increase the gas limit/priority fee in MetaMask.
- Solution 2: If your token has fees/rewards/limits, did you perform the exclusion steps correctly (Phase 1)? This is the most common reason for finalization failure with such tokens. Double-check you excluded the correct Pinksale Presale Address and that the exclusion transaction confirmed successfully on the blockchain explorer.
- Solution 3: There might be a deeper issue within your token's contract code that interferes with the Pinksale contract interaction.
- Problem: I ran the
exclude
function, but finalization still fails.- Solution: Double-check you excluded the correct address (the Pinksale Presale Address, not your own wallet or the token address). Verify the exclusion transaction was successful on the explorer. Make sure you excluded from all relevant functions if your contract separates fees, rewards, and max tx limits. If it still fails, the issue might be more complex within your contract's logic.
- Problem: I can't find the
exclude
orexempt
function on BscScan/Etherscan.- Solution: Make sure you are on the "Contract" -> "Write Contract" tab and connected with the Owner Wallet. If it's genuinely not there, your contract might not have these features, or they might be implemented differently. Contact your smart contract developer.
- Problem: Finalization succeeded, but investors report they cannot claim their tokens.
- Solution: Ensure you have completed Phase 3: Set Token Claim Time. Verify on the Pinksale page that claiming is active or that the scheduled claim time has been reached.
Still Stuck?
If you've carefully followed the steps (especially Phase 1 if applicable) and watched the video guide, but finalization still fails, there might be an underlying issue with your token's smart contract code preventing interaction with the Pinksale system. In this situation:
- Re-read your contract code or have the developer review it, specifically looking for anything that might block large transfers or interactions with other contracts.
- Consider hiring a trusted and experienced smart contract developer to diagnose the issue. Pinksale provides a list of known developers here: https://docs.pinksale.finance/service/contract-developers