> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tokemak (tokemak)

> Liquidity routing protocol with Autopilot Autopools that automatically deploy and rebalance liquidity across DeFi destinations.

Liquidity routing protocol with Autopilot Autopools that automatically deploy and rebalance liquidity across DeFi destinations.

| Fact | Value |
| - | - |
| Category | Yield and vaults |
| Family | none |
| Namespace | `Tokemak` on ethereum |
| Chains | ethereum |

## What it offers

* **deposit**: Deposit assets into Autopool
* **withdraw**: Withdraw assets from Autopool
* **redeem**: Redeem Autopool shares

## Notes

* Autopools are ERC-4626 vaults. Autopilot automatically rebalances across DeFi venues.

## Its names in a program

On Ethereum, `Tokemak` is a namespace: its contracts need no import.

```ts theme={null}
function main() {
  // Ethereum's autopoolRegistry, `0x7E5828a3A6Ae75426d739E798140513A2E2964E4`.
  require(Tokemak.AutopoolRegistry != 0);
}
```

## Deployments

| Chain | Contract | Address | In a program |
| - | - | - | - |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | autopoolRegistry | `0x7E5828a3A6Ae75426d739E798140513A2E2964E4` | `Tokemak.AutopoolRegistry` |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | systemRegistry | `0x2218F90A98b0C070676f249EF44834686dAa4285` | `Tokemak.SystemRegistry` |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | toke | `0x2e9d63788249371f1DFC918a52f8d799F4a38C94` | `Tokemak.Toke` |

## ABI

### `AutopoolABI`

`import AutopoolABI from "./protocols/tokemak/AutopoolABI.json";`

* `deposit(uint256 assets, address receiver) returns (uint256 shares)`
* `withdraw(uint256 assets, address receiver, address owner) returns (uint256 shares)`
* `redeem(uint256 shares, address receiver, address owner) returns (uint256 assets)`
* `totalAssets() view returns (uint256)`
* `convertToShares(uint256 assets) view returns (uint256)`
* `convertToAssets(uint256 shares) view returns (uint256)`

## Next steps

* [Protocols](https://docs.eco.com/sauce-sdk/reference/protocols.md): the other protocols, by what they do.
* [Protocols and tokens](https://docs.eco.com/sauce/names.md): calling a contract by its namespace, or through its ABI.
* [Glossary](https://docs.eco.com/sauce/glossary.md): the words these pages use, in plain terms.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.