David Iach has just recently proposed a rather interesting and, in my opinion, very sensible alternative to the ICO/IEO models for crowdfunding/fundraising in launching a project or a startup. ICOs have already demonstrated to be far from ideal a way to raise funds since projects tend to raise large amounts of funds in short periods of time with barely even an articulated proposal and just a quick surface sketch of an idea or a promise in a few pages of a white paper - this has proven neither sustainable nor reliable as almost entirely all ICOs to date have failed to deliver on any of their promises and plans. IEOs are not all that different, with the main difference being that exchanges stake their reputation behind the project and supposedly give investors some guarantees that they won't be totally screwed.
Another problem is market liquidity, both in general and when it comes specifically to newly launched tokens and assets - there's a ton of illiquid or barely liquid tokens buried underneath abandoned decentralized exchanges and vulnerable contracts. How ICOs usually work is an ERC-20 token contract is deployed and investors send Ether/Dai to it in exchange for getting a proportionate amount of tokens back. Investors get the tokens and the project team or contract owner(s) get the funding deposited in the contract. What Iach is proposing is that the Ether/Dai instead of being locked in the contract goes to an Uniswap liquidity pool along with the equivalent value of tokens. The team will still receive a portion of the issued tokens as per the concrete distribution and fund management plan, but through some mechanism like a streaming type contract continuously paying out funds through time (or something else, as best suiting the purposes).
The advantages of such model are that investors have instant liquidity allowing them to sell their tokens at any time while the value of the team's income directly depends on the value of their work motivating them to do a good job (while simply acquiring a ton of money in advance kind of tends to have the opposite effect - why work hard on solving problems and creating value when I'm already lying on this pile of fortune?). This also relieves a project's team from responsibility over directly managing funds and thus making them less liable to possible law suits and regulatory troubles.
Uniswap has a pretty simple and straightforward user interface. The two screenshots above, although not connected to a wallet, show the UI for swapping between tokens and the one for pooling tokens/assets you one in a liquidity pool and earn interest from that. Uniswap was created by Hayden Adams who says that translating an idea or a concept in the contract logic of Solidity or Vyper on Ethereum is fairly easy to learn once you know what you want to accomplish. Much of Uniswap itself is written in Vyper (and not Solidity) which I'll be publishing a separate piece about which gives you a good idea of what contracts are and how to read and write them in Ethereum (something as important as being able to read real-life legal and financial contracts before signing them or entering into the agreements they imply).
Perhaps here we ought to also stop and better explain how Uniswap works in a little more detail for those unfamiliar. Uniswap is one of the indispensable public utilities in the Ethereum DeFi ecosystem. It's a decentralized exchange and an automated market maker / liquidity provider at the same time which allows you to seamlessly swap between ETH and ERC-20 tokens and/or pool your assets to contribute to an exchange's reserves in providing liquidity for them and collecting fees (~0.3% on each trade) in exchange for doing that. Uniswap is basically made of a series of ETH/ERC-20 exchange contracts (automated market makers) and any such can be easily deployed for any given ERC-20 via Uniswap's factory contract.
Market making and liquidity provision is not the same as simply buying and selling but requires the deposit of equivalent value of both Ether and the corresponding ERC-20 token. Liquidity is pooled across all providers which contribute their assets and a separate internal "pool" token tracks everybody's relative contributions. Pool tokens are generated upon depositing liquidity and are burned when withdrawing a proportional share of the reserves. This is different than buying or selling; it requires depositing an equivalent value of both ETH and the relevant ERC20 token. Liquidity is pooled across all providers and an internal "pool token" (ERC20) is used to track each providers relative contribution. Pool tokens are minted when liquidity is deposited into the system and can be burned at any time to withdraw a proportional share of the reserves. Here's the Uniswap protocol specification for any further details.
Bancor is somewhat similar to Uniswap but implements a much more complex operational logic which usually incurs significantly higher gas fees. Anyway, the above illustrates how various generic mechanisms can be re-purposed and combined in various configurations to serve specific purposes and fulfill business and market needs. As an alternative to ICOs, I definitely think that's a worthwhile proposition and am also happy to see Ethereum maturing and advancing way beyond an ERC-20 printer for half-assed scammy ICO campaigns.
And here's an Epicenter podcast episode with Uniswap creator Hayden Adams if you're interested to give it a spin: