# Index token contracts

> Every Bankr index token contract on Base and Robinhood Chain, with its address and ABI.

# Index token contracts

Every contract behind Bankr index tokens, on each chain, with its ABI. This page is generated from the deployment records, so it matches what is on chain. [Index tokens for developers](/token-launching/index-tokens-for-developers) shows how to use them.

**Machine-readable:** [contracts.json](https://docs.bankr.bot/index-tokens/contracts.json) lists every address below with its ABI's URL and keccak256 hash.

## Base

Chain ID `8453`. Deployed at block `52696524` from contracts commit `5bef98481e`. Addresses link to Basescan.

### Contracts

| Contract                    | Address                                                                                                                 | What it does                                                                                                                                                                                | ABI                                                                                         |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| IndexFactory                | [`0x49a3A6D33110425099A9f070d22f576f592b46eB`](https://basescan.org/address/0x49a3A6D33110425099A9f070d22f576f592b46eB) | Creates indexes: checks the basket, clones a vault, registers its two pools and makes the first buy. `IndexCreated` announces each index; `isVault` checks an address.                      | [IndexFactory.json](https://docs.bankr.bot/index-tokens/abis/IndexFactory.json)             |
| IndexHook                   | [`0x2Fd0ba044Faa96A9d1B0f010C0Dac3F696aA2888`](https://basescan.org/address/0x2Fd0ba044Faa96A9d1B0f010C0Dac3F696aA2888) | The Uniswap v4 hook on every index pool. A buy purchases each basket token and mints shares; a sell burns shares and pays out the basket. `poolsOf(index)` returns the index's pool keys.   | [IndexHook.json](https://docs.bankr.bot/index-tokens/abis/IndexHook.json)                   |
| IndexVault (implementation) | [`0x569e3D9C25CF181Be5e3f636cE2Bdd17aC13CaC6`](https://basescan.org/address/0x569e3D9C25CF181Be5e3f636cE2Bdd17aC13CaC6) | Every index is an EIP-1167 clone of this contract at its own address: the index's ERC-20 and the custodian of its basket. Call the index's address with this ABI, never the implementation. | [IndexVault.json](https://docs.bankr.bot/index-tokens/abis/IndexVault.json)                 |
| IndexLens                   | [`0x0E19BDeB4EF2443413926b9Daa72E484f63BB72b`](https://basescan.org/address/0x0E19BDeB4EF2443413926b9Daa72E484f63BB72b) | Read-only views that never revert: composition, NAV, redeem preview, plan state.                                                                                                            | [IndexLens.json](https://docs.bankr.bot/index-tokens/abis/IndexLens.json)                   |
| ComponentRegistry           | [`0xDE72f09Bf147d241854A3D554D763C35774c92B6`](https://basescan.org/address/0xDE72f09Bf147d241854A3D554D763C35774c92B6) | The tokens an index can hold, the venue each one trades on and its price bands.                                                                                                             | [ComponentRegistry.json](https://docs.bankr.bot/index-tokens/abis/ComponentRegistry.json)   |
| PriceModule                 | [`0xb9E0157850D5646A6D317681e3b9f1AA415aE17f`](https://basescan.org/address/0xb9E0157850D5646A6D317681e3b9f1AA415aE17f) | Prices: Chainlink feeds where they exist, otherwise Bankr-signed prices pushed on chain. Auctions read only prices an independent co-signer also signed.                                    | [PriceModule.json](https://docs.bankr.bot/index-tokens/abis/PriceModule.json)               |
| MarketCalendar              | [`0x044043818576E1bF6999a06A4290a22252995681`](https://basescan.org/address/0x044043818576E1bF6999a06A4290a22252995681) | NYSE session calendar. It labels a stock price live or extended-hours; it never blocks a trade.                                                                                             | [MarketCalendar.json](https://docs.bankr.bot/index-tokens/abis/MarketCalendar.json)         |
| Rebalancer                  | [`0x6Eb0384bFA45dC637ec27f96Ba8898620a3Dcb66`](https://basescan.org/address/0x6Eb0384bFA45dC637ec27f96Ba8898620a3Dcb66) | Each index's rebalancing mode and plans, and the public Dutch auctions that carry them out.                                                                                                 | [Rebalancer.json](https://docs.bankr.bot/index-tokens/abis/Rebalancer.json)                 |
| FeeSplitter                 | [`0x9a926c8435074B18D14EC8c11C3912681a112d99`](https://basescan.org/address/0x9a926c8435074B18D14EC8c11C3912681a112d99) | Receives each index's fee and splits it between the creator, Bankr's treasury and BNKR stakers. Creators claim here.                                                                        | [FeeSplitter.json](https://docs.bankr.bot/index-tokens/abis/FeeSplitter.json)               |
| StakersSink                 | [`0x6822e370688c422c0287b29497A21D8dbbD2Ed48`](https://basescan.org/address/0x6822e370688c422c0287b29497A21D8dbbD2Ed48) | Holds the BNKR stakers' share of index fees.                                                                                                                                                | [StakersSink.json](https://docs.bankr.bot/index-tokens/abis/StakersSink.json)               |
| IndexPassVerifier           | [`0xE5B123D9562bAf86A503445D98C2401D13616f94`](https://basescan.org/address/0xE5B123D9562bAf86A503445D98C2401D13616f94) | Checks a Bankr-signed pass on buys of an index whose `IndexHook.passRequired(index)` is true. Off by default.                                                                               | [IndexPassVerifier.json](https://docs.bankr.bot/index-tokens/abis/IndexPassVerifier.json)   |
| IndexAuctionRouter          | [`0xfd3B5c1Fe8cc4a9c0c9D7B5a6d59Ea6079edf90E`](https://basescan.org/address/0xfd3B5c1Fe8cc4a9c0c9D7B5a6d59Ea6079edf90E) | Fills a rebalance auction from a wallet, without your own callback contract (`fillFromWallet`).                                                                                             | [IndexAuctionRouter.json](https://docs.bankr.bot/index-tokens/abis/IndexAuctionRouter.json) |
| BackstopFiller              | [`0xc9819378C7eBc4d70f2c61A42Efbb85989F35C7f`](https://basescan.org/address/0xc9819378C7eBc4d70f2c61A42Efbb85989F35C7f) | Bankr's backstop bidder in rebalance auctions, for a capped fee.                                                                                                                            | [BackstopFiller.json](https://docs.bankr.bot/index-tokens/abis/BackstopFiller.json)         |

### Linked libraries

Called only by the contracts above. Their errors and events are already in those contracts' ABIs.

| Name          | Address                                                                                                                 | What it does                                                |
| ------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| HookLegs      | [`0x987Dc6106B53b83c4822Ef81224d024Ca17667F8`](https://basescan.org/address/0x987Dc6106B53b83c4822Ef81224d024Ca17667F8) | Buys and sells each basket token on its venue for the hook. |
| HookBasket    | [`0xA94b17985f48ee0c169d63e6A30333F466C8C872`](https://basescan.org/address/0xA94b17985f48ee0c169d63e6A30333F466C8C872) | The hook's basket math for buys and sells.                  |
| PlanMath      | [`0x74fdfB759a5b45a864Db36a7Fdb1Fc088B5C76BC`](https://basescan.org/address/0x74fdfB759a5b45a864Db36a7Fdb1Fc088B5C76BC) | Rebalance plan math for the Rebalancer.                     |
| AuctionGuards | [`0x71B0aE4117421c7e7EE1D1A1966dBe9BE89f3954`](https://basescan.org/address/0x71B0aE4117421c7e7EE1D1A1966dBe9BE89f3954) | Auction start and fill checks for the Rebalancer.           |
| AuctionMath   | [`0x60D55636398E66C7B05683B165a4D9f72464C764`](https://basescan.org/address/0x60D55636398E66C7B05683B165a4D9f72464C764) | Auction curve and sizing for the Rebalancer.                |
| AuctionFlow   | [`0x4D9CffDAC60c8E05ec614Ceb6cE3ac911b2ecF5F`](https://basescan.org/address/0x4D9CffDAC60c8E05ec614Ceb6cE3ac911b2ecF5F) | Auction tranche flow for the Rebalancer.                    |

### External contracts

| Name                     | Address                                                                                                                 | What it does                                                             |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Uniswap v4 PoolManager   | [`0x498581fF718922c3f8e6A244956aF099B2652b2b`](https://basescan.org/address/0x498581fF718922c3f8e6A244956aF099B2652b2b) | Holds every index pool; every buy and sell enters here.                  |
| Uniswap Universal Router | [`0x6fF5693b99212Da76ad316178A184AB56D299b43`](https://basescan.org/address/0x6fF5693b99212Da76ad316178A184AB56D299b43) | Routes buys and sells (`V4_SWAP`).                                       |
| Uniswap V4Quoter         | [`0x0d5e0F971ED27FBfF6c2837bf31316121532048D`](https://basescan.org/address/0x0d5e0F971ED27FBfF6c2837bf31316121532048D) | `quoteExactInputSingle` runs the real hook and returns the exact output. |
| Permit2                  | [`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | Token approvals for the Universal Router.                                |
| USDC                     | [`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`](https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) | Quote token of each index's stable pool.                                 |
| WETH                     | [`0x4200000000000000000000000000000000000006`](https://basescan.org/address/0x4200000000000000000000000000000000000006) | Quote token of each index's WETH pool.                                   |
| CreateX                  | [`0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed`](https://basescan.org/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) | Deterministic deployer used for every contract above.                    |

## Robinhood Chain

Chain ID `4663`. Deployed at block `90364008` from contracts commit `5bef98481e`. Addresses link to Etherscan.

### Contracts

| Contract                    | Address                                                                                                                       | What it does                                                                                                                                                                                | ABI                                                                                         |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| IndexFactory                | [`0x9DF71A6959bf3d5Bb9d58d2cF370C50270aC041F`](https://robin.etherscan.io/address/0x9DF71A6959bf3d5Bb9d58d2cF370C50270aC041F) | Creates indexes: checks the basket, clones a vault, registers its two pools and makes the first buy. `IndexCreated` announces each index; `isVault` checks an address.                      | [IndexFactory.json](https://docs.bankr.bot/index-tokens/abis/IndexFactory.json)             |
| IndexHook                   | [`0xBA97750d0F40FEDf13a98aBdB131A7A598B06888`](https://robin.etherscan.io/address/0xBA97750d0F40FEDf13a98aBdB131A7A598B06888) | The Uniswap v4 hook on every index pool. A buy purchases each basket token and mints shares; a sell burns shares and pays out the basket. `poolsOf(index)` returns the index's pool keys.   | [IndexHook.json](https://docs.bankr.bot/index-tokens/abis/IndexHook.json)                   |
| IndexVault (implementation) | [`0x0B94E3b4dD8481904659eF1181e6d4BCB2A3c217`](https://robin.etherscan.io/address/0x0B94E3b4dD8481904659eF1181e6d4BCB2A3c217) | Every index is an EIP-1167 clone of this contract at its own address: the index's ERC-20 and the custodian of its basket. Call the index's address with this ABI, never the implementation. | [IndexVault.json](https://docs.bankr.bot/index-tokens/abis/IndexVault.json)                 |
| IndexLens                   | [`0xb1D340BaA48d4F4DdF7D9dd445E826cE9fe0FEf3`](https://robin.etherscan.io/address/0xb1D340BaA48d4F4DdF7D9dd445E826cE9fe0FEf3) | Read-only views that never revert: composition, NAV, redeem preview, plan state.                                                                                                            | [IndexLens.json](https://docs.bankr.bot/index-tokens/abis/IndexLens.json)                   |
| ComponentRegistry           | [`0x1A58f2e74F22e14434c3bB690702567636e08d61`](https://robin.etherscan.io/address/0x1A58f2e74F22e14434c3bB690702567636e08d61) | The tokens an index can hold, the venue each one trades on and its price bands.                                                                                                             | [ComponentRegistry.json](https://docs.bankr.bot/index-tokens/abis/ComponentRegistry.json)   |
| PriceModule                 | [`0xe47455483b1CdBc84d3722Ec6A91365a0dd19cb8`](https://robin.etherscan.io/address/0xe47455483b1CdBc84d3722Ec6A91365a0dd19cb8) | Prices: Chainlink feeds where they exist, otherwise Bankr-signed prices pushed on chain. Auctions read only prices an independent co-signer also signed.                                    | [PriceModule.json](https://docs.bankr.bot/index-tokens/abis/PriceModule.json)               |
| MarketCalendar              | [`0xc1F26D30c186B1eFf107f5fF1532bE23c86BFc8C`](https://robin.etherscan.io/address/0xc1F26D30c186B1eFf107f5fF1532bE23c86BFc8C) | NYSE session calendar. It labels a stock price live or extended-hours; it never blocks a trade.                                                                                             | [MarketCalendar.json](https://docs.bankr.bot/index-tokens/abis/MarketCalendar.json)         |
| Rebalancer                  | [`0x9eD0B9A7897Bd049127Cdfc78fd9DD4E022dA30A`](https://robin.etherscan.io/address/0x9eD0B9A7897Bd049127Cdfc78fd9DD4E022dA30A) | Each index's rebalancing mode and plans, and the public Dutch auctions that carry them out.                                                                                                 | [Rebalancer.json](https://docs.bankr.bot/index-tokens/abis/Rebalancer.json)                 |
| FeeSplitter                 | [`0x2dfaC6c3D643687Cf834f217Ea03e717f9Eaa05B`](https://robin.etherscan.io/address/0x2dfaC6c3D643687Cf834f217Ea03e717f9Eaa05B) | Receives each index's fee and splits it between the creator, Bankr's treasury and BNKR stakers. Creators claim here.                                                                        | [FeeSplitter.json](https://docs.bankr.bot/index-tokens/abis/FeeSplitter.json)               |
| StakersSink                 | [`0xDb5c2758a1EA38962CdC951aA5FdA6c68Cfdc8A0`](https://robin.etherscan.io/address/0xDb5c2758a1EA38962CdC951aA5FdA6c68Cfdc8A0) | Holds the BNKR stakers' share of index fees.                                                                                                                                                | [StakersSink.json](https://docs.bankr.bot/index-tokens/abis/StakersSink.json)               |
| IndexPassVerifier           | [`0x6eE8135f120B022a972df56FCFfAe86248932A58`](https://robin.etherscan.io/address/0x6eE8135f120B022a972df56FCFfAe86248932A58) | Checks a Bankr-signed pass on buys of an index whose `IndexHook.passRequired(index)` is true. Off by default.                                                                               | [IndexPassVerifier.json](https://docs.bankr.bot/index-tokens/abis/IndexPassVerifier.json)   |
| IndexAuctionRouter          | [`0xdE1b4a18FEfA500319923424c99ece909089547b`](https://robin.etherscan.io/address/0xdE1b4a18FEfA500319923424c99ece909089547b) | Fills a rebalance auction from a wallet, without your own callback contract (`fillFromWallet`).                                                                                             | [IndexAuctionRouter.json](https://docs.bankr.bot/index-tokens/abis/IndexAuctionRouter.json) |
| BackstopFiller              | [`0xEf8869B6d3D545f4Bd4dE248aFA8903F608FFFa6`](https://robin.etherscan.io/address/0xEf8869B6d3D545f4Bd4dE248aFA8903F608FFFa6) | Bankr's backstop bidder in rebalance auctions, for a capped fee.                                                                                                                            | [BackstopFiller.json](https://docs.bankr.bot/index-tokens/abis/BackstopFiller.json)         |

### Linked libraries

Called only by the contracts above. Their errors and events are already in those contracts' ABIs.

| Name          | Address                                                                                                                       | What it does                                                |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| HookLegs      | [`0x164D20b55427EB56F8C1801b3289e026a6C33b29`](https://robin.etherscan.io/address/0x164D20b55427EB56F8C1801b3289e026a6C33b29) | Buys and sells each basket token on its venue for the hook. |
| HookBasket    | [`0x6af4dF4bAA644b623Cc6C71b5d46303c8B1AfE5d`](https://robin.etherscan.io/address/0x6af4dF4bAA644b623Cc6C71b5d46303c8B1AfE5d) | The hook's basket math for buys and sells.                  |
| PlanMath      | [`0xD365f02B936816071955Aa8858337de62D16e9cc`](https://robin.etherscan.io/address/0xD365f02B936816071955Aa8858337de62D16e9cc) | Rebalance plan math for the Rebalancer.                     |
| AuctionGuards | [`0x492Fd2fAfB0CcEa6057A34Ee792227E191bFCeae`](https://robin.etherscan.io/address/0x492Fd2fAfB0CcEa6057A34Ee792227E191bFCeae) | Auction start and fill checks for the Rebalancer.           |
| AuctionMath   | [`0xdCb368A5bc51e2d7a40472750EB2be4123979eB1`](https://robin.etherscan.io/address/0xdCb368A5bc51e2d7a40472750EB2be4123979eB1) | Auction curve and sizing for the Rebalancer.                |
| AuctionFlow   | [`0xEE483A315aF67E84Abd05b18EA5c45Afc592025A`](https://robin.etherscan.io/address/0xEE483A315aF67E84Abd05b18EA5c45Afc592025A) | Auction tranche flow for the Rebalancer.                    |

### External contracts

| Name                     | Address                                                                                                                       | What it does                                                             |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Uniswap v4 PoolManager   | [`0x8366a39CC670B4001A1121B8F6A443A643e40951`](https://robin.etherscan.io/address/0x8366a39CC670B4001A1121B8F6A443A643e40951) | Holds every index pool; every buy and sell enters here.                  |
| Uniswap Universal Router | [`0x8876789976dEcBfCbBbe364623C63652db8C0904`](https://robin.etherscan.io/address/0x8876789976dEcBfCbBbe364623C63652db8C0904) | Routes buys and sells (`V4_SWAP`).                                       |
| Uniswap V4Quoter         | [`0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94`](https://robin.etherscan.io/address/0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94) | `quoteExactInputSingle` runs the real hook and returns the exact output. |
| Permit2                  | [`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://robin.etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | Token approvals for the Universal Router.                                |
| USDG                     | [`0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168`](https://robin.etherscan.io/address/0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168) | Quote token of each index's stable pool.                                 |
| WETH                     | [`0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73`](https://robin.etherscan.io/address/0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73) | Quote token of each index's WETH pool.                                   |
| CreateX                  | [`0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed`](https://robin.etherscan.io/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) | Deterministic deployer used for every contract above.                    |

## ABIs

Each ABI is the full JSON ABI of the deployed contract, generated from the same build the Bankr app uses. IIndexAuctionCallee is an interface, not a deployed contract.

| Contract            | ABI                                                                                           | Use it for                                                                    |
| ------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| IndexFactory        | [IndexFactory.json](https://docs.bankr.bot/index-tokens/abis/IndexFactory.json)               | IndexFactory                                                                  |
| IndexVault          | [IndexVault.json](https://docs.bankr.bot/index-tokens/abis/IndexVault.json)                   | IndexVault (implementation)                                                   |
| IndexHook           | [IndexHook.json](https://docs.bankr.bot/index-tokens/abis/IndexHook.json)                     | IndexHook                                                                     |
| IndexLens           | [IndexLens.json](https://docs.bankr.bot/index-tokens/abis/IndexLens.json)                     | IndexLens                                                                     |
| FeeSplitter         | [FeeSplitter.json](https://docs.bankr.bot/index-tokens/abis/FeeSplitter.json)                 | FeeSplitter                                                                   |
| StakersSink         | [StakersSink.json](https://docs.bankr.bot/index-tokens/abis/StakersSink.json)                 | StakersSink                                                                   |
| Rebalancer          | [Rebalancer.json](https://docs.bankr.bot/index-tokens/abis/Rebalancer.json)                   | Rebalancer                                                                    |
| PriceModule         | [PriceModule.json](https://docs.bankr.bot/index-tokens/abis/PriceModule.json)                 | PriceModule                                                                   |
| MarketCalendar      | [MarketCalendar.json](https://docs.bankr.bot/index-tokens/abis/MarketCalendar.json)           | MarketCalendar                                                                |
| ComponentRegistry   | [ComponentRegistry.json](https://docs.bankr.bot/index-tokens/abis/ComponentRegistry.json)     | ComponentRegistry                                                             |
| IndexPassVerifier   | [IndexPassVerifier.json](https://docs.bankr.bot/index-tokens/abis/IndexPassVerifier.json)     | IndexPassVerifier                                                             |
| IndexAuctionRouter  | [IndexAuctionRouter.json](https://docs.bankr.bot/index-tokens/abis/IndexAuctionRouter.json)   | IndexAuctionRouter                                                            |
| BackstopFiller      | [BackstopFiller.json](https://docs.bankr.bot/index-tokens/abis/BackstopFiller.json)           | BackstopFiller                                                                |
| IIndexAuctionCallee | [IIndexAuctionCallee.json](https://docs.bankr.bot/index-tokens/abis/IIndexAuctionCallee.json) | The callback your auction filler contract implements (not deployed by Bankr). |
