nTokens are like a portfolio manager for liquidity providers. Instead of needing to provide liquidity directly to individual liquidity pools and roll positions when they mature, the nToken handles everything on behalf of Notional LPs.
To mint nTokens, a user deposits cash (cTokens) into the nToken account. The nToken account then distributes the user's liquidity into the underlying liquidity pools for that currency and holds the liquidity tokens that it gets back.
The nToken account divides liquidity between individual markets based on governance parameters called deposit shares.
Deposit shares are percentage figures that tell the nToken account how much of a user's total liquidity to deposit into each individual market.
Deposit shares allow Notional governors to direct liquidity to the maturities where there is the greatest end-user demand for borrowing and lending. For example, governors may decide on a set of deposit shares which would direct more liquidity to long-dated maturities and less liquidity to short-dated maturities, or vice versa depending on relative demand.
The nToken account provides liquidity to an individual liquidity pool in the same way as any other account. The nToken account mints a pair of offsetting fCash tokens, places the cTokens along with the positive fCash into the liquidity pool in exchange for liquidity tokens, and holds the negative fCash alongside the liquidity tokens in its portfolio.
For example, to provide 100 DAI in liquidity to a liquidity pool that is 50% cDAI and 50% fDAI, the LP would need to mint a pair of +100 fDAI and -100 fDAI. The LP would then convert their DAI into cDAI, and put the cDAI + fDAI into the liquidity pool in exchange for liquidity tokens.This would leave the LP with -100 fDAI + liquidity tokens.
At any time, the nToken account will hold cTokens, fCash, and liquidity tokens from different liquidity pools.