# Finalize a Presale

{% embed url="<https://www.youtube.com/watch?v=5lxR3NnWjwc>" %}
How to Finalize a Presale on PinkSale
{% endembed %}

### Overview[​](https://docs.pinksale.finance/presale/finalize-a-presale#overview) <a href="#overview" id="overview"></a>

* 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[​](https://docs.pinksale.finance/presale/finalize-a-presale#steps) <a href="#steps" id="steps"></a>

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.

1. **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](https://bscscan.com/) (if your token is on the BNB Smart Chain) or directly on your Pinksale presale page by clicking the "token address" link.

   ![Finalize Presale - Step 1 - Finding Token Address on Presale Page](/files/lLeqiOceQ6V8Ku6mvwEG)

**Find your Pool/Presale contract address:**

![](/files/Q1dAv6XQuFv4YVsews2U)

2. **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.

   ![Finalize Presale - Step 2 - Connecting Wallet on Block Explorer](/files/8xUVtldqzSjMPdcArvSN)
3. **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 combined `exclude` 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**.

![](/files/CihrBfSNFkZFUn0twKKG)

* If the function requires a boolean input (like `exclude(address, bool)` or similar showing `exclude (bool)` in the interface) and asks whether to exclude, input `True`.

![](/files/Mns8sLnb0Un0dgJRD97F)

* 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.

4. **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.
5. **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).

   ![Finalize Presale - Step 5 - Finalize Button on Pinksale Page](/files/7V4k6gGIFnqUCPpcGXFf)
6. **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[​](https://docs.pinksale.finance/presale/finalize-a-presale#qa) <a href="#qa" id="qa"></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[​](https://docs.pinksale.finance/presale/finalize-a-presale#troubleshooting) <a href="#troubleshooting" id="troubleshooting"></a>

* **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.
* **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., typing `True`)?
* **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.
* **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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pinksale.finance/launchpads/finalize-a-launchpad.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
