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 shows how to use them.
Machine-readable: 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 | 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 |
| IndexHook | 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 |
| IndexVault (implementation) | 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 |
| IndexLens | 0x0E19BDeB4EF2443413926b9Daa72E484f63BB72b | Read-only views that never revert: composition, NAV, redeem preview, plan state. | IndexLens.json |
| ComponentRegistry | 0xDE72f09Bf147d241854A3D554D763C35774c92B6 | The tokens an index can hold, the venue each one trades on and its price bands. | ComponentRegistry.json |
| PriceModule | 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 |
| MarketCalendar | 0x044043818576E1bF6999a06A4290a22252995681 | NYSE session calendar. It labels a stock price live or extended-hours; it never blocks a trade. | MarketCalendar.json |
| Rebalancer | 0x6Eb0384bFA45dC637ec27f96Ba8898620a3Dcb66 | Each index's rebalancing mode and plans, and the public Dutch auctions that carry them out. | Rebalancer.json |
| FeeSplitter | 0x9a926c8435074B18D14EC8c11C3912681a112d99 | Receives each index's fee and splits it between the creator, Bankr's treasury and BNKR stakers. Creators claim here. | FeeSplitter.json |
| StakersSink | 0x6822e370688c422c0287b29497A21D8dbbD2Ed48 | Holds the BNKR stakers' share of index fees. | StakersSink.json |
| IndexPassVerifier | 0xE5B123D9562bAf86A503445D98C2401D13616f94 | Checks a Bankr-signed pass on buys of an index whose IndexHook.passRequired(index) is true. Off by default. | IndexPassVerifier.json |
| IndexAuctionRouter | 0xfd3B5c1Fe8cc4a9c0c9D7B5a6d59Ea6079edf90E | Fills a rebalance auction from a wallet, without your own callback contract (fillFromWallet). | IndexAuctionRouter.json |
| BackstopFiller | 0xc9819378C7eBc4d70f2c61A42Efbb85989F35C7f | Bankr's backstop bidder in rebalance auctions, for a capped fee. | 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 | Buys and sells each basket token on its venue for the hook. |
| HookBasket | 0xA94b17985f48ee0c169d63e6A30333F466C8C872 | The hook's basket math for buys and sells. |
| PlanMath | 0x74fdfB759a5b45a864Db36a7Fdb1Fc088B5C76BC | Rebalance plan math for the Rebalancer. |
| AuctionGuards | 0x71B0aE4117421c7e7EE1D1A1966dBe9BE89f3954 | Auction start and fill checks for the Rebalancer. |
| AuctionMath | 0x60D55636398E66C7B05683B165a4D9f72464C764 | Auction curve and sizing for the Rebalancer. |
| AuctionFlow | 0x4D9CffDAC60c8E05ec614Ceb6cE3ac911b2ecF5F | Auction tranche flow for the Rebalancer. |
External contracts
| Name | Address | What it does |
|---|---|---|
| Uniswap v4 PoolManager | 0x498581fF718922c3f8e6A244956aF099B2652b2b | Holds every index pool; every buy and sell enters here. |
| Uniswap Universal Router | 0x6fF5693b99212Da76ad316178A184AB56D299b43 | Routes buys and sells (V4_SWAP). |
| Uniswap V4Quoter | 0x0d5e0F971ED27FBfF6c2837bf31316121532048D | quoteExactInputSingle runs the real hook and returns the exact output. |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Token approvals for the Universal Router. |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | Quote token of each index's stable pool. |
| WETH | 0x4200000000000000000000000000000000000006 | Quote token of each index's WETH pool. |
| CreateX | 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 | 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 |
| IndexHook | 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 |
| IndexVault (implementation) | 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 |
| IndexLens | 0xb1D340BaA48d4F4DdF7D9dd445E826cE9fe0FEf3 | Read-only views that never revert: composition, NAV, redeem preview, plan state. | IndexLens.json |
| ComponentRegistry | 0x1A58f2e74F22e14434c3bB690702567636e08d61 | The tokens an index can hold, the venue each one trades on and its price bands. | ComponentRegistry.json |
| PriceModule | 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 |
| MarketCalendar | 0xc1F26D30c186B1eFf107f5fF1532bE23c86BFc8C | NYSE session calendar. It labels a stock price live or extended-hours; it never blocks a trade. | MarketCalendar.json |
| Rebalancer | 0x9eD0B9A7897Bd049127Cdfc78fd9DD4E022dA30A | Each index's rebalancing mode and plans, and the public Dutch auctions that carry them out. | Rebalancer.json |
| FeeSplitter | 0x2dfaC6c3D643687Cf834f217Ea03e717f9Eaa05B | Receives each index's fee and splits it between the creator, Bankr's treasury and BNKR stakers. Creators claim here. | FeeSplitter.json |
| StakersSink | 0xDb5c2758a1EA38962CdC951aA5FdA6c68Cfdc8A0 | Holds the BNKR stakers' share of index fees. | StakersSink.json |
| IndexPassVerifier | 0x6eE8135f120B022a972df56FCFfAe86248932A58 | Checks a Bankr-signed pass on buys of an index whose IndexHook.passRequired(index) is true. Off by default. | IndexPassVerifier.json |
| IndexAuctionRouter | 0xdE1b4a18FEfA500319923424c99ece909089547b | Fills a rebalance auction from a wallet, without your own callback contract (fillFromWallet). | IndexAuctionRouter.json |
| BackstopFiller | 0xEf8869B6d3D545f4Bd4dE248aFA8903F608FFFa6 | Bankr's backstop bidder in rebalance auctions, for a capped fee. | 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 | Buys and sells each basket token on its venue for the hook. |
| HookBasket | 0x6af4dF4bAA644b623Cc6C71b5d46303c8B1AfE5d | The hook's basket math for buys and sells. |
| PlanMath | 0xD365f02B936816071955Aa8858337de62D16e9cc | Rebalance plan math for the Rebalancer. |
| AuctionGuards | 0x492Fd2fAfB0CcEa6057A34Ee792227E191bFCeae | Auction start and fill checks for the Rebalancer. |
| AuctionMath | 0xdCb368A5bc51e2d7a40472750EB2be4123979eB1 | Auction curve and sizing for the Rebalancer. |
| AuctionFlow | 0xEE483A315aF67E84Abd05b18EA5c45Afc592025A | Auction tranche flow for the Rebalancer. |
External contracts
| Name | Address | What it does |
|---|---|---|
| Uniswap v4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 | Holds every index pool; every buy and sell enters here. |
| Uniswap Universal Router | 0x8876789976dEcBfCbBbe364623C63652db8C0904 | Routes buys and sells (V4_SWAP). |
| Uniswap V4Quoter | 0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 | quoteExactInputSingle runs the real hook and returns the exact output. |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Token approvals for the Universal Router. |
| USDG | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 | Quote token of each index's stable pool. |
| WETH | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 | Quote token of each index's WETH pool. |
| CreateX | 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 | IndexFactory |
| IndexVault | IndexVault.json | IndexVault (implementation) |
| IndexHook | IndexHook.json | IndexHook |
| IndexLens | IndexLens.json | IndexLens |
| FeeSplitter | FeeSplitter.json | FeeSplitter |
| StakersSink | StakersSink.json | StakersSink |
| Rebalancer | Rebalancer.json | Rebalancer |
| PriceModule | PriceModule.json | PriceModule |
| MarketCalendar | MarketCalendar.json | MarketCalendar |
| ComponentRegistry | ComponentRegistry.json | ComponentRegistry |
| IndexPassVerifier | IndexPassVerifier.json | IndexPassVerifier |
| IndexAuctionRouter | IndexAuctionRouter.json | IndexAuctionRouter |
| BackstopFiller | BackstopFiller.json | BackstopFiller |
| IIndexAuctionCallee | IIndexAuctionCallee.json | The callback your auction filler contract implements (not deployed by Bankr). |