1) What are Pools?
2) Pools are one of the key fundamental primitives of DeFi.

Pools are places you store stuff, and tokenize the ownership.
3) For instance, AMMs are Pools.

You store ETH + DAI in a Pool, and you tokenize ownership with an LP token. You can send back the LP token to get your ETH + DAI back.

Uniswap Pools have a twist: anyone can send DAI to the Pool, and get back an equal % of its ETH.
4) Staking is a Pool.

You put in the thing you're staking, get out the Staking Pool Token.

You can either drop the yield _in_ the Pool (so when people redeem their Pool tokens they get it), or _on_ the Pool Tokens.
5) cTokens and aTokens are Pools.

You send in USDC; the Pool lends it out, getting interest; and cUSDC / aUSDC go up from that interest.

Then you can move cUSDC / aUSDC around as interest-bearing USDC.
6) YFI takes Pool tokens, and puts them in other Pools to create meta-pool-tokens, then puts them in Pools....

Yield upon yield upon yield.
7) But each of these have different structures, and building a _new_ Pool is hard.

So Serum is making it easy.

Coming in the next week are Pools, as a basic primitive.

Customizable Pools.
8) What does this mean?

Well, let's say you want to have an AMM, except with a different curve.

That's fine! You can specify any curve you want in the address that controls the Pool's assets. Just modify what Uniswap's does.
9) Or if you want to have an AMM trade on an orderbook?

Sure! Have the address that controls the assets use them to send orders on the relevant DEX market https://serum-academy.com/en/dex-list/ .

Want to charge a remove liquidity fee? Sure, have the redemption function send 99% as much back.
10) Borrow/lending? Sure, have the Pool's asset control address decide how much you can take out.

Margin AMM? Sure, have the asset control address take in an asset, send through borrow/lending, and then trade.

Lockups? Sure, have the Pool's redemption function be on a timer.
You can follow @SBF_Alameda.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: