The Impossible Launchpad is a fair platform for conducting IDOs for Impossible projects.

Allocation Master

The Allocation Staking contract is long-running and manages all state related to users' allocations.
On many traditional launchpads, users get allocation by staking a platform token. This way, every user that wants to participate will be guaranteed an allocation via staking. This avoids problems like IDO bots that frontrun fair participants who want to buy into an IDO. For example, on the Binance launchpad, users stake BNB to get allocation. Binance then calculates user allocations based on BNB stakes at various randomly determined snapshot times.
One problem with randomly determined snapshot times is that provable randomness is very hard to obtain on chain. If someone could manipulate the source of randomness so it was no longer truly random, the entire allocation determination process is undermined. For example, if a malicious user knew in advance that a snapshot would occur at block N, then all they need to do is get a flashloan (or even a normal loan) for a single block, and avoid the opportunity cost of staking over time that all other fair participants are subject to.
The Impossible Launchpad innovates on allocation staking by determining allocation as proportional to stake amount held over time. This allows us to measure interest in a way that is both fair for everyone and hard to manipulate. By designing our allocation staking system so that the tokens only generate stake as they're held over time, allocation on our platform becomes a measure of opportunity cost, and opportunity cost makes economic exploits infeasible. As an added benefit, this makes ahead-of-time knowledge of the snapshot block unprofitable, and no longer necessitates having a provable source of randomness to determine when the snapshot block should occur.

Allocation Sale (first IDO stage)

The allocation sale is the first stage in our IDO process for selling a token. All project tokens will first be available through the allocation sale, offering everyone the fairest chance at obtaining guaranteed stake in the sale.
The Allocation Sale contract is a contract for conducting fair, one-off, fixed-price sales where users have guaranteed allocations managed by the Allocation Staking contract.
Users first stake to obtain allocation via the Allocation Master. Then, an Allocation Sale is set up to read allocations from a particular block, and conduct a sale based off of allocations at that snapshot.
The allocation sale contract is configurable to a variety of sales. It is possible to set up sales with whitelists, sales with minimum purchase amounts, and "giveaways", where the cost of the sale asset is 0 (used with a maximum redemption amount and a whitelist).

Declining Price Sale (second IDO stage)

After the allocation sale, remaining unsold tokens will be sold in a first-come-first-serve manner through a declining price sale. This allows for more efficient price discovery and also allows the project team to perform complete distribution of the tokens set aside for IDO.
To conduct our declining price sale, we leverage smart contracts written by Solv, a project team that is close to us. Solv is an innovative protocol for vouchers, a.k.a. investment certificates, which are NFTs that wrap around tokens of value.
In this case, project tokens for sale will be wrapped in these Solv Investment Certificates, which will be sold via their market through our frontend. Click here to read more about their smart contracts.