---
description: >-
  We create different types of auction contracts that fits your need wether you
  are raising for angel, pre-seed, seed, presale, private sale, initial offering
  or d-exchange offering, we got you covered
---

# Getting Started

## **The Shard vs Non-Shard Contracts**

1. **Shard**

Creates a shard or child contract that contains the contributor shares, contribution, released claims, claim timestamp,  and whitelist status (optional), with operations such as **redeem** and **withdraw.** Redeem is for claiming JETTON shares. Withdraw is for claiming contribution in TON minus prepaid fees. Whitelisting in shard requires to initialize a child contract for 0.05 TON for every new address that will be created.

1. **Non-Shard**

Shares, contribution, released claims, claim time, and whitelist status are added in the HashMap residing in the main or parent contract. Whitelist addresses is sent in one operation prior to the start of the auction or before any contribution made with max limit of 4,080 addresses following a packed cell format. Additional whitelist addresses can be sent following gas fee requirement stated in this document.



## **Auction Types**&#x20;

Each auction config varies depending on the type of auction used via **get\_auction\_data**

<table><thead><tr><th width="88">Type</th><th width="285">Name</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>Instant Non-Shard</td><td>Gas Efficient, Instant Payout, Claim JETTON on Claim Time</td></tr><tr><td>2</td><td>Instant Shard</td><td>Creates Share Shard, Instant Payout, Claim JETTON on Claim Time from Shard</td></tr><tr><td>3</td><td>Pool Non-Shard</td><td>Gas efficient, Pool funds, Payout on Finalize</td></tr><tr><td>4</td><td>Pool Shard</td><td>Pool Funds, Payout on Finalize, Claim JETTON share if Completed</td></tr><tr><td>5</td><td>Pool Vesting Non-Shard</td><td>Gas Efficient, Pool Funds, Payout on Finalize, Claim JETTONs by Vesting Schedule</td></tr><tr><td>6</td><td>Pool Vesting Shard</td><td>Pool TONs, Payout TON on Finalize, Claim JETTONs by Vesting Schedule</td></tr><tr><td>7</td><td>Pool Liquidity Non-Shard</td><td>Gas efficient, Auto-liquidity and Payout on Finalization, Claim JETTONs if Completed</td></tr><tr><td>8</td><td>Pool Liquidity Shard</td><td>Auto-liquidity and Payout on Completion, Claim JETTONs if Completed from Shard</td></tr><tr><td>9</td><td>NFT Premint OC + Random</td><td>NFT Drop pre-minted and randomly minted by anyone, Price Vary by Configuration</td></tr><tr><td>10</td><td>NFT Premint OFFC + Allowlist </td><td>Gas efficient random minting for allowlist</td></tr><tr><td>11</td><td>NFT Premint OC + Tier + Allowlist</td><td>Allowlist can only mint one NFT with Edition Number at tier prices</td></tr><tr><td>12</td><td>Pool Non-Shard + BJ</td><td>TBA</td></tr><tr><td>13</td><td>Pool Shard + BJ</td><td>TBA</td></tr></tbody></table>

### Abbreviations

* **OC** stands for On-Chain
* **OFFC** stands for Off-Chain
* **NSD** stands for Non-Shard&#x20;
* **SD** stands for Shard [❄️](https://emojipedia.org/snowflake)
* **BJ** stands for Buy with Jetton 🤪 💦

## **Auction Flow**

* Owner deploys the auction contract&#x20;
  * 0.02 TON for deploying auction contract
* Owner sends jettons to the contract and update token balance and address via change\_token
  * 0.06 TON for sending jettons to auction contract
  * 0.02 TON for change\_token
* User contributes on start time with max\_amount limit per user
  * 0.02 TON gas fee + X actual contribution in TON
* User redeems allocated jettons on claim time
  * 0.02 TON for executing redeem operation



## **Auction Flag Values**

Note: Not every contract implements each flag, this is only to determine what symbolize the value returned by the flag via get\_auction\_data and get\_auction\_config

<table><thead><tr><th width="191">Name</th><th>Description</th></tr></thead><tbody><tr><td>Status<br>2bit (required)</td><td>0 - Drafted<br>1 - Started/Open<br>2 - Cancelled<br>3 - Completed</td></tr><tr><td>Payout Mode<br>1bit</td><td>0 - Admin<br>1 - Wallets (wallets needs to be added)</td></tr><tr><td>Vesting Mode<br>1bit (optional)</td><td>0 - None<br>1 - Has Vesting</td></tr><tr><td>Fund Pool Mode<br>1bit (optional)</td><td>How contributions will be disbursed<br><br>0 - Instant Payout -> instant disbursement on contribution<br>1 - Pool Funds -> collect and disbursed (soft cap required)</td></tr><tr><td>Allocation / Share<br>1bit (optional)</td><td>Creates allocation for the contributor<br><br>0 - Non-Shard (to HashMap)<br>1 - Shard (requires Allocation Code)</td></tr><tr><td>Whitelisting Mode<br>1bit (required)</td><td>Identifies the whitelisting/allowlist mode<br><br>0 - Onchain via HashMap <br>1 - Offchain via Merkle Tree</td></tr><tr><td>Airdrop Mode<br>2bit (optional)</td><td>Sends jettons to wallets instantly<br><br>0 - None (Redeemable on Claim Time)<br>1 - Airdrop on Contribute<br>2 - Airdrop on Finalize (by Admin)<br>3 - Airdrop on Liquidity</td></tr><tr><td>Mint Mode<br>2bit (optional)</td><td>Sends a mint message to jettons wallet based on allocation. Mint jettons on-demand<br><br>0 - None<br>1 - Auction<br>2 - Contributor<br>3 - Liquidity</td></tr><tr><td>Referral Incentives<br>16bit</td><td>Sets the finder/referral fee percentage<br><br>BPS: 100_00bps, 5% is 5_00<br><br>e.g 2.5% is 250 (2_50), 12.25% is 1225 (12_25)</td></tr><tr><td>TGE Percentage<br>16bit (optional)</td><td>Initial amount released for vesting contracts<br><br>BPS: 100_00, 5% is 5_00 on TGE</td></tr><tr><td>Vesting<br>Cell Ref</td><td>Vesting Total Amount -> coins<br>Vesting Next Claim Time -> cliff + duration<br>Vesting Unlock Duration -> <br>Vesting Unlock Amount -> unlocked every claim time<br>Vesting Released -> total_released</td></tr><tr><td>Liquidity<br>1bit (unsigned)<br>Cell Ref</td><td>Flag if auction contract has instant liquidity feature<br><br>0 - No Liqudity<br>1 - Has Liquidity<br><br>BPS: 100_00bps, 40% is 4000<br><br>Liquidity Address -> address where to add token liquidity<br>Liquidity Percentage ->  </td></tr></tbody></table>



### **Gas Fees for Whitelists/Allowlist**

Initial Max Whitelists: 4080 addresses for 0.1 TON only

Gas consumption table to achieve 20,000 whitelist addresses

<table><thead><tr><th width="190">Execute For</th><th width="201">Address Count</th><th width="210">Gas Per Execution</th><th>Total TON</th></tr></thead><tbody><tr><td>200x</td><td>80</td><td>~ 0.98 TON</td><td>196</td></tr><tr><td>320x</td><td>50</td><td>~ 0.59 TON</td><td>188</td></tr><tr><td>400x</td><td>40</td><td>~ 0.47 TON</td><td>188</td></tr></tbody></table>



## Auction Operations

*   **Everyone (executable on finalization)**

    * airdrop (0x1) -> Everyone can pay and airdrop to contributors if contract is finalized
    * add\_liquidity (0x6278fb06) -> Everyone can create liquidity by schedule and liquidity config


*   **Contributor**

    * contribute (0x22) -> sends contribution for token allocation
    * redeem (0x4) -> redeem token allocation
    * withdraw (0x3) -> withdraw contribution if cancelled or soft cap not reached and cannot be finalized by admin


*   **Admin**

    * start (0x5) -> Change the status from drafted to started
    * finalize (0x6) -> If soft cap reached, status is changed to completed, sends contribution to wallets if set or admin address
    * cancel (0x15) -> Cancel current auction
    * pullout (0x16) -> Pull out tokens to admin
    * claim (0x17) -> Claim excess coins / contributions in the contract
    * claim\_now (0x7) -> Override the end time and claim time to current timestamp
    * change\_owner -> Change ownership to another admin
    * change\_config  -> Change the auction config if not yet finalized
    * change\_content -> Change the IPFS metadata content url
    * change\_wallets -> Change the receiving wallets, total share must be 100\_00bps
    * change\_token -> Change the token and asset balance to start the contract
    * change\_schedule -> Change the schedule if there is no contribution yet
    * change\_rate -> Change rate, min, max, soft cap, hard cap
    * change\_referral -> Change referral fee percentage
    * add\_whitelist ->  Sets the whitelisting status of a certain wallet address
    * add\_whitelists ->  Adds new whitelisting addresses


* Platform or Provider
  * change\_platform\_fee -> change the platform cut percentage by platform owner
  * change\_provider\_fee -> change the provider cut percentage by provider owner



## Auction Methods or Getters

* get\_auction\_data -> contains auction info and type
* get\_auction\_config -> contains sale configuration
* get\_auction\_stats -> contains auction stats
* get\_platform\_config -> contains auction platform and provider config
* get\_share\_of (Non-Shard only) -> contains the share data of the contributor
* get\_allocation\_address (Shard only) -> returns the address of the shard-ed contract
* get\_wallets -> contains wallets list
* get\_shares -> contains share allocations list
