Diamond Contracts |
|
Mainnet |
Goerli |
Rinkeby |
Diamond.sol |
Core meTokens protocol proxy contract. Through it you can query all meTokens facets and return stored meTokens protocol data. |
https://etherscan.io/address/0x0B4ec400e8D10218D0869a5b0036eA4BCf92d905 |
https://goerli.etherscan.io/address/0xBdC97D61E8198880c966716df8613cb2fE073D90 |
https://rinkeby.etherscan.io/address/0x357d636c40A8E3FbFC983D960292D9fEf56104cb#code |
DiamondCutFacet.sol |
Called by governance to add, replace, and remove functions of a facet, as well as add new facets to meTokens protocol. |
https://etherscan.io/address/0x82419BBb80C20BA4945Af39a11e26d3Be13E8C3C |
https://goerli.etherscan.io/address/0x899Ea44C5140a66d83C44E5B856e9feEf3aa87d6 |
https://rinkeby.etherscan.io/address/0x7c7aa31bb530a4B9b6E4F3d0d1a22C92e35d1EFA#code |
DiamondLoupeFacet.sol |
Provides helper functions for tools to look at the meTokens diamond and query information such as all facet addresses and their function selectors. |
https://etherscan.io/address/0x59F96e820A1f11Ad6FAeEE11513Ed163B109494B |
https://goerli.etherscan.io/address/0x6c8E3DF44E602aBf638e083e4BD3039BA3707133 |
https://rinkeby.etherscan.io/address/0x5B76A197e8E546c2F728d678DC36b747B1295021#code |
OwnershipFacet.sol |
Provides access control for meTokens protocol. Learn more https://metokenslabs.notion.site/accad6f811754ddd8c4a2c23e157c279. |
https://etherscan.io/address/0xBf4c9c5eaf23C0210b343896Ad0aECb70d74bCFb |
https://goerli.etherscan.io/address/0x8c9ce2b1DaD40EA6fd95C0acFbEA977519De5099 |
https://rinkeby.etherscan.io/address/0xd97f0E387f2A57662a231d61400ed55AcD0b4c74#code |
Core Contracts |
|
|
|
|
MeTokenRegistryFacet.sol |
Manages all state for a meToken within meTokens protocol. From it you can create your meToken and subscribe to a hub, resubscribe your meToken to a different hub, and transfer ownership of your meToken to another user. |
https://etherscan.io/address/0x8b91FcF2230ab04A46e2D83aaF062EC1B5AAAa5c |
https://goerli.etherscan.io/address/0xab90dDCBD864c4D6f51B20d969E06d70399aB79d |
https://rinkeby.etherscan.io/address/0x4194072271Ac8b48aC593aF8e41ef421Eee1d592#code |
FoundryFacet.sol |
Manages all minting and burning of meTokens, enables the donation of assets to a meToken owner, and provides calculations for the amount of meTokens minted from mint() and assets returned from burn(). |
https://etherscan.io/address/0xA56AAF637b057a5EDf7b7252D0B7280042E71335 |
https://goerli.etherscan.io/address/0x09a2e447ED411EaC76c5aff9168bde1f9D4B154f |
https://rinkeby.etherscan.io/address/0xa09fb72e6befFce4761F427A899556D7c4b18CBB#code |
HubFacet.sol |
Manages all hubs for meTokens protocol. A hub is a unique configuration for a bonding curve of which any meToken can subscribe to. When a meToken is subscribed to a hub, it will also use that hubs’ vault and underlying asset. |
https://etherscan.io/address/0x4555cf6E984186F6C0dfeba1A26764b21553B39f |
https://goerli.etherscan.io/address/0xa6A9320205A290903DA361b8a2073284787acF7f |
https://rinkeby.etherscan.io/address/0x94458A55f626A551C3776B731981c8849c1E0E64#code |
FeeFacet.sol |
Manages the fee rates for using meTokens, controlled by governance with a max rate of 5%. Fees for interacting with meTokens protocol may exist for: |
|
|
|
• Minting a meToken |
|
|
|
|
• Burning a meToken as a user for the underlying asset |
|
|
|
|
• Burning a meToken as the meToken issuer for the underlying asset |
https://etherscan.io/address/0x3FC010F716A77d065D0c98663eB1Ce6a291edBAA |
https://goerli.etherscan.io/address/0x13cD4179405356Ed7E54E0bB08358815Bb1Aa5e4 |
https://rinkeby.etherscan.io/address/0x29BD82e1c0D845ffd641A5184eE3ece0eF151e19#code |
|
CurveFacet.sol |
Provides additional views into using the meTokens curve. This curve is identical to Bancor with an additional formula to calculate minting from 0 supply. |
https://etherscan.io/address/0x480e29421F2b490d014468D5C527516Ee7f86f10 |
https://goerli.etherscan.io/address/0xE4EDc07ccB3591ADeDa26d965bdE988Ec75a2Dc7 |
https://rinkeby.etherscan.io/address/0xD1F3a93D5D241D24d5f81048A94D4F78d7d9a250#code |
Registry Contracts |
|
|
|
|
VaultRegistry.sol |
Manages approved vaults for a hub to use. |
https://etherscan.io/address/0x3b1265e3997349B100764BA08416CCc277fbeeFb |
https://goerli.etherscan.io/address/0x9e624C959bf9b69b833Acebdc80a4BC33751a42e |
https://rinkeby.etherscan.io/address/0xf6Fb5D7dDC4fE2d3dbC6193F65bF7DDa844773e9#code |
MigrationRegistry.sol |
Manages all migration routes for if a meToken changes its’ underlying asset by resubscribing to a different hub which uses a different vault and/or asset. |
https://etherscan.io/address/0x247f600bAa33A3aAb7f93d6774Cb689ABC897517 |
https://goerli.etherscan.io/address/0x8Ec7eA65769D8162b7706DD48F03d3dCc241ECAE |
https://rinkeby.etherscan.io/address/0x73A6EABAf8b5E8A5A231b39d6baB16C3d5F25CEE#code |
Vault Contracts |
|
|
|
|
SingleAssetVault.sol |
Base meTokens protocol vault which manages basic ERC20-like underlying assets of created meTokens. |
https://etherscan.io/address/0x6BB0B4889663f507f50110B1606CE80aBe9a738d |
https://goerli.etherscan.io/address/0x47fF07BfD0cdFaD6650177f661E8cC977FA8Bf36 |
https://rinkeby.etherscan.io/address/0x2Dc5b10F1Bf395795b0c993Ccf031DC8E5b29491#code |
SameAssetTransferMigration.sol |
Provides a SingleAssetVault to hold a meTokens’ underlying asset for when a meToken resubscribes to a different hub with the same underlying asset. |
|
|
|
UniswapSingleTransferMigration.sol |
Provides a SingleAssetVault that instantly swaps a meTokens’ underlying asset to a new asset when the meToken is resubscribing to a different hub with a different underlying asset. It uses Chainlink’s https://docs.chain.link/docs/feed-registry/ to fetch the spot price of the asset and provides a max slippage protection of 5%. |
|
|
|
Implementation Contracts |
|
|
|
|
MeTokenFactory.sol |
Creates and deploys a users’ meToken based on the ERC20 standard. |
https://etherscan.io/address/0x8D4ee3599aF814bF3Aa884c161f0dE81d9e97225 |
https://goerli.etherscan.io/address/0x88B30Fe63473EeB33a0E2E8e46563c265AC3FD49 |
https://rinkeby.etherscan.io/address/0x899716ba52378CaA30259A576F4c89329e512915#code |
MeToken.sol |
This ERC20 contract defines every user-created MeToken and is created through the MeTokenFactory. |
|
|
|
Auxiliary Contracts |
|
|
|
|
MinimalFowarder.sol |
meTokens Protocol deployment of Open Zeppelin’s https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/metatx/MinimalForwarder.sol. |
https://etherscan.io/address/0x5fFb9EDD354f71AbE7F8bb26B8d9577D92B3efFd |
https://goerli.etherscan.io/address/0xDE0a3a8946116f9b06Dfbc28252584c500a11cd7 |
|
MetaTx EOA |
External Owned Account wallet that is paying for gas via meta-transactions for select community members |
https://etherscan.io/address/0x060b688084e9ed9e5d69f045462ca82de55e41cd |
|
|