> For the complete documentation index, see [llms.txt](https://docs.efficientdex.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.efficientdex.com/run-a-pool/getting-started.md).

# Getting started

The decisions before creating an Efficient pool, the setup for proprietary market makers, the steps to a live pool and the current limits.

**An Efficient pool needs three things to run.** Hooks price it, a factory call creates and configures it, and ongoing calls keep it running.

Anyone can create a pool. Its pool operator can use the Everlong hook or write its own hooks.

[Pool operators](/use-efficient/provide-liquidity/pool-operators.md) covers what a pool operator controls once the pool is live. [Deployments](/reference/deployments.md) lists the chains where Efficient runs and the status of each deployment.

## What a pool operator decides

**Some choices are fixed at creation, so the pool operator settles them before the factory call.** The rest can change later. Some change at once, and some only after the pool's governance delay or longer.

A loan asset is a token the pool can borrow. The first loan asset is the other token in the pool's pair: USDC, in an Efficient pool that trades BTC against USDC. A pool can have more than one.

| Decision         | What the contracts allow                                                                                                                                                                                                                                                                                                                                                                                                                                                         | After creation                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The pair         | One pool asset of at least 6 decimals and a first loan asset. A price feed that lists both, with no peg band on the pool asset. A pool born with no price band needs only the loan asset listed                                                                                                                                                                                                                                                                                  | The assets and the feed contract are fixed. The feed's Safe can replace a token's price source after 10 days, or after 4 hours while that source fails                                                                                                                                                                                                                                                                                                          |
| The hooks        | The three required hooks, from the Everlong hook or the pool operator's own code. Plus an optional controller hook and loan-to-loan swap hook                                                                                                                                                                                                                                                                                                                                    | Replaced only through a hook change. It waits for the governance delay and executes while the pool is paused. The wait is at least 10 days while the band ceiling lets the pool run with no price band                                                                                                                                                                                                                                                          |
| Financing        | Borrowing, supplying only or neither, with up to 16 loan assets and 32 lending markets. A pool can also run with no lending market at all                                                                                                                                                                                                                                                                                                                                        | Each new loan asset or lending market waits for the governance delay. Lending markets named at creation skip it                                                                                                                                                                                                                                                                                                                                                 |
| Limits and dials | The price band, fee floor and cap, per-swap cap, execution buffer in each asset, oracle band, LTV pin and `mintProRata` share cap. A pool-asset reserve, set with `setPoolAssetReserve`, needs a lending market where posted pool asset earns. Morpho Blue, the only kind today, isn't one. A zero band at creation gives a pool no price band. Such a pool needs hooks that price without a feed and an LTV envelope near zero. It keeps borrowing off and holds one loan asset | Change at once. The band and the fee cap stay under ceilings that start at their values at creation. A pool born with no price band starts with a band ceiling that admits any band. So a band of up to 10% can be attached at once. Raising a ceiling waits for the governance delay, and at least 10 days for the band ceiling. The LTV pin moves only inside limits fixed at creation. See [Credit and collateral](/how-pools-work/credit-and-collateral.md) |
| Depositors       | Anyone, if the pool has no allowlist contract. Otherwise, only the depositors its allowlist lists, which can be the pool operator alone. The pool puts no cap of its own on a pro-rata deposit. The share-sized `mintProRata` entry has a separate share cap. That cap is zero, so the entry is closed, until the pool operator sets it                                                                                                                                          | Whether the pool has an allowlist contract, and which one, is fixed. Its list and on-off switch change at once. Switching it off admits anyone                                                                                                                                                                                                                                                                                                                  |
| Governance       | The authority contract and its roles. A governance delay of at least one day. A performance fee ceiling of at most 50%                                                                                                                                                                                                                                                                                                                                                           | The authority contract, the delay and the performance fee ceiling are fixed. The keeper, guardian and fee receiver change at once                                                                                                                                                                                                                                                                                                                               |

[Configure a pool](/run-a-pool/configure-a-pool.md) gives the factory call and every setting. [Roles and governance](/run-a-pool/roles-and-governance.md) covers who can change each setting and the notice each change gets.

## For proprietary market makers

**A proprietary market maker can run its book as an Efficient pool.** Depositors' capital then quotes alongside its own. The market maker's hooks price every swap from the pool's balances. They also use one checked feed price, in a pool with a price band. A hook that prices straight from the feed needs no anchor.

A pool with no allowlist contract admits every depositor. The pool has no call to add one later, so that choice holds for the pool's life. A market maker that wants to choose its depositors deploys an allowlist instead. It switches the allowlist on and lists only its own address until it admits others.

Today the work splits between what the contracts do onchain and what the market maker runs offchain.

| Onchain today                                                                                                                                                                                                                                                                              | Offchain today                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Pricing and fees, in the market maker's own hooks. They use the pool's balances and, in a pool with a price band, the checked feed price                                                                                                                                                   | The keeper's recentres, dial moves, lending-market order and any hook settings. A controller hook is a contract the pool lets call `setPriorities`, `maintain` and `recenter`. It can hold the lending-market order and the recentres as onchain rules. But something still has to call it |
| Borrowing, supplying only or neither, with an optional two-sided seed                                                                                                                                                                                                                      | A regular caller of `maintainCollateral()` in a pool that borrows                                                                                                                                                                                                                          |
| One LTV pin for the whole pool, in a pool that borrows. It isn't chosen per swap. An execution buffer in each asset pays trades without a lending-market call. For each loan asset, it's a reserve target. For the pool asset, it's what the pool doesn't need to post at a lending market | Order flow, through `swap` and the adapters for aggregators and solvers                                                                                                                                                                                                                    |

Leverage logic lives in the Everlong hook. The pool holds only `FEATURE_LEVERAGE`, the switch that hook reads. [Swaps for aggregators and solvers](/integrate/swaps-for-aggregators-and-solvers.md) covers how order flow reaches a pool.

## Steps to a live pool

**A pool goes live in three steps, each with its own page.**

| Step                                                   | What the pool operator does                                                                                                                                                                                                   | Ready when                                                                                                                                               |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1. [Build a hook](/run-a-pool/build-a-hook.md)         | Uses the Everlong hook or writes its own code for the three required hooks and any optional ones                                                                                                                              | The required hooks and any loan-to-loan swap hook implement the interface version the pool checks                                                        |
| 2. [Configure a pool](/run-a-pool/configure-a-pool.md) | Deploys the authority contract and any allowlist. Settles every pool setting. Deploys the hooks, bound to the pool's predicted address. Then creates and seeds the pool through the factory, sets its limits and activates it | The pool is unpaused, with deposits, sells and buys switched on as intended                                                                              |
| 3. [Operate a pool](/run-a-pool/operate-a-pool.md)     | Runs the keeper calls the hooks need. Keeps collateral topped up in a pool that borrows. Monitors each lending market the pool uses                                                                                           | A keeper. A regular collateral caller, in a pool that borrows. Alerts on the lending markets' health and the oracle band, in a pool with lending markets |

## Current limits

**These limits hold in the code today, regardless of a pool's hooks and settings.**

* Each pool has one pool asset. In a pool that borrows, it's the only collateral the pool posts at its lending markets.
* `swap` trades the pool asset against the first loan asset only. Other loan assets move only through `swapLoan`. That call needs a loan-to-loan swap hook and the `FEATURE_LOAN_SWAP` switch on. The loan-to-loan swap logic is in the pool and in audit. A pool adds that hook at deployment or through a later hook change, though Efficient ships none yet.
* Swaps are exact input only, with no callback. See [Trade](/use-efficient/trade.md).
* Morpho Blue is the only venue type. Only the protocol Safe can schedule another, and it takes effect after the factory's upgrade delay. [Just-in-time financing](/how-pools-work/just-in-time-financing.md) covers this.
* Shares cover one pooled book, so no depositor holds a price range of its own.
* Hooks don't see who's trading, because a swap passes them no trader address.
* The asset router works only in pools with one loan asset. So do the entry market's `fillPar` and `crank`.
