Skip to main content

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​

ContractAddressWhat it doesABI
IndexFactory0x49a3A6D33110425099A9f070d22f576f592b46eBCreates 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
IndexHook0x2Fd0ba044Faa96A9d1B0f010C0Dac3F696aA2888The 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)0x569e3D9C25CF181Be5e3f636cE2Bdd17aC13CaC6Every 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
IndexLens0x0E19BDeB4EF2443413926b9Daa72E484f63BB72bRead-only views that never revert: composition, NAV, redeem preview, plan state.IndexLens.json
ComponentRegistry0xDE72f09Bf147d241854A3D554D763C35774c92B6The tokens an index can hold, the venue each one trades on and its price bands.ComponentRegistry.json
PriceModule0xb9E0157850D5646A6D317681e3b9f1AA415aE17fPrices: Chainlink feeds where they exist, otherwise Bankr-signed prices pushed on chain. Auctions read only prices an independent co-signer also signed.PriceModule.json
MarketCalendar0x044043818576E1bF6999a06A4290a22252995681NYSE session calendar. It labels a stock price live or extended-hours; it never blocks a trade.MarketCalendar.json
Rebalancer0x6Eb0384bFA45dC637ec27f96Ba8898620a3Dcb66Each index's rebalancing mode and plans, and the public Dutch auctions that carry them out.Rebalancer.json
FeeSplitter0x9a926c8435074B18D14EC8c11C3912681a112d99Receives each index's fee and splits it between the creator, Bankr's treasury and BNKR stakers. Creators claim here.FeeSplitter.json
StakersSink0x6822e370688c422c0287b29497A21D8dbbD2Ed48Holds the BNKR stakers' share of index fees.StakersSink.json
IndexPassVerifier0xE5B123D9562bAf86A503445D98C2401D13616f94Checks a Bankr-signed pass on buys of an index whose IndexHook.passRequired(index) is true. Off by default.IndexPassVerifier.json
IndexAuctionRouter0xfd3B5c1Fe8cc4a9c0c9D7B5a6d59Ea6079edf90EFills a rebalance auction from a wallet, without your own callback contract (fillFromWallet).IndexAuctionRouter.json
BackstopFiller0xc9819378C7eBc4d70f2c61A42Efbb85989F35C7fBankr'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.

NameAddressWhat it does
HookLegs0x987Dc6106B53b83c4822Ef81224d024Ca17667F8Buys and sells each basket token on its venue for the hook.
HookBasket0xA94b17985f48ee0c169d63e6A30333F466C8C872The hook's basket math for buys and sells.
PlanMath0x74fdfB759a5b45a864Db36a7Fdb1Fc088B5C76BCRebalance plan math for the Rebalancer.
AuctionGuards0x71B0aE4117421c7e7EE1D1A1966dBe9BE89f3954Auction start and fill checks for the Rebalancer.
AuctionMath0x60D55636398E66C7B05683B165a4D9f72464C764Auction curve and sizing for the Rebalancer.
AuctionFlow0x4D9CffDAC60c8E05ec614Ceb6cE3ac911b2ecF5FAuction tranche flow for the Rebalancer.

External contracts​

NameAddressWhat it does
Uniswap v4 PoolManager0x498581fF718922c3f8e6A244956aF099B2652b2bHolds every index pool; every buy and sell enters here.
Uniswap Universal Router0x6fF5693b99212Da76ad316178A184AB56D299b43Routes buys and sells (V4_SWAP).
Uniswap V4Quoter0x0d5e0F971ED27FBfF6c2837bf31316121532048DquoteExactInputSingle runs the real hook and returns the exact output.
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3Token approvals for the Universal Router.
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Quote token of each index's stable pool.
WETH0x4200000000000000000000000000000000000006Quote token of each index's WETH pool.
CreateX0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5EdDeterministic deployer used for every contract above.

Robinhood Chain​

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

Contracts​

ContractAddressWhat it doesABI
IndexFactory0x9DF71A6959bf3d5Bb9d58d2cF370C50270aC041FCreates 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
IndexHook0xBA97750d0F40FEDf13a98aBdB131A7A598B06888The 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)0x0B94E3b4dD8481904659eF1181e6d4BCB2A3c217Every 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
IndexLens0xb1D340BaA48d4F4DdF7D9dd445E826cE9fe0FEf3Read-only views that never revert: composition, NAV, redeem preview, plan state.IndexLens.json
ComponentRegistry0x1A58f2e74F22e14434c3bB690702567636e08d61The tokens an index can hold, the venue each one trades on and its price bands.ComponentRegistry.json
PriceModule0xe47455483b1CdBc84d3722Ec6A91365a0dd19cb8Prices: Chainlink feeds where they exist, otherwise Bankr-signed prices pushed on chain. Auctions read only prices an independent co-signer also signed.PriceModule.json
MarketCalendar0xc1F26D30c186B1eFf107f5fF1532bE23c86BFc8CNYSE session calendar. It labels a stock price live or extended-hours; it never blocks a trade.MarketCalendar.json
Rebalancer0x9eD0B9A7897Bd049127Cdfc78fd9DD4E022dA30AEach index's rebalancing mode and plans, and the public Dutch auctions that carry them out.Rebalancer.json
FeeSplitter0x2dfaC6c3D643687Cf834f217Ea03e717f9Eaa05BReceives each index's fee and splits it between the creator, Bankr's treasury and BNKR stakers. Creators claim here.FeeSplitter.json
StakersSink0xDb5c2758a1EA38962CdC951aA5FdA6c68Cfdc8A0Holds the BNKR stakers' share of index fees.StakersSink.json
IndexPassVerifier0x6eE8135f120B022a972df56FCFfAe86248932A58Checks a Bankr-signed pass on buys of an index whose IndexHook.passRequired(index) is true. Off by default.IndexPassVerifier.json
IndexAuctionRouter0xdE1b4a18FEfA500319923424c99ece909089547bFills a rebalance auction from a wallet, without your own callback contract (fillFromWallet).IndexAuctionRouter.json
BackstopFiller0xEf8869B6d3D545f4Bd4dE248aFA8903F608FFFa6Bankr'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.

NameAddressWhat it does
HookLegs0x164D20b55427EB56F8C1801b3289e026a6C33b29Buys and sells each basket token on its venue for the hook.
HookBasket0x6af4dF4bAA644b623Cc6C71b5d46303c8B1AfE5dThe hook's basket math for buys and sells.
PlanMath0xD365f02B936816071955Aa8858337de62D16e9ccRebalance plan math for the Rebalancer.
AuctionGuards0x492Fd2fAfB0CcEa6057A34Ee792227E191bFCeaeAuction start and fill checks for the Rebalancer.
AuctionMath0xdCb368A5bc51e2d7a40472750EB2be4123979eB1Auction curve and sizing for the Rebalancer.
AuctionFlow0xEE483A315aF67E84Abd05b18EA5c45Afc592025AAuction tranche flow for the Rebalancer.

External contracts​

NameAddressWhat it does
Uniswap v4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951Holds every index pool; every buy and sell enters here.
Uniswap Universal Router0x8876789976dEcBfCbBbe364623C63652db8C0904Routes buys and sells (V4_SWAP).
Uniswap V4Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94quoteExactInputSingle runs the real hook and returns the exact output.
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3Token approvals for the Universal Router.
USDG0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168Quote token of each index's stable pool.
WETH0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73Quote token of each index's WETH pool.
CreateX0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5EdDeterministic 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.

ContractABIUse it for
IndexFactoryIndexFactory.jsonIndexFactory
IndexVaultIndexVault.jsonIndexVault (implementation)
IndexHookIndexHook.jsonIndexHook
IndexLensIndexLens.jsonIndexLens
FeeSplitterFeeSplitter.jsonFeeSplitter
StakersSinkStakersSink.jsonStakersSink
RebalancerRebalancer.jsonRebalancer
PriceModulePriceModule.jsonPriceModule
MarketCalendarMarketCalendar.jsonMarketCalendar
ComponentRegistryComponentRegistry.jsonComponentRegistry
IndexPassVerifierIndexPassVerifier.jsonIndexPassVerifier
IndexAuctionRouterIndexAuctionRouter.jsonIndexAuctionRouter
BackstopFillerBackstopFiller.jsonBackstopFiller
IIndexAuctionCalleeIIndexAuctionCallee.jsonThe callback your auction filler contract implements (not deployed by Bankr).