EFP Multisig
The EFP multisig is a set of Gnosis Safes on Base, OP Mainnet, and Ethereum Mainnet, and each requires 3 out of 4 signatories to execute a transaction.
Multisig Wallet Addresses
Chain | Address | Gnosis Safe |
---|---|---|
Base | 0x860bFe7019d6264A991277937ea6002714C3c508 | Link |
OP Mainnet | 0x860bFe7019d6264A991277937ea6002714C3c508 | Link |
Ethereum Mainnet | 0xeaa7B3B7f9A6c9782Fc17A49C4dfC170193d69Dd | Link |
Signers
The signers are the same on all three chains and are controlled by members of the EFP core team.
Address | Owner |
---|---|
0x983110309620D911731Ac0932219af06091b6744 | brantly.eth |
0x96184444629F3489c4dE199871E6F99568229d8f | brantly.eth |
0xC9C3A4337a1bba75D0860A1A81f7B990dc607334 | 0xthrpw.eth |
0x5B0f3DBdD49614476e4f5fF5Db6fe13d41fCB516 | encrypteddegen.eth |
EFP Contracts owned by Multisig
Base (Chain ID: 8453)
Name | Address |
---|---|
EFPAccountMetadata | 0x5289fE5daBC021D02FDDf23d4a4DF96F4E0F17EF |
EFPListRecords | 0x41Aa48Ef3c0446b46a5b1cc6337FF3d3716E2A33 |
EFPListRegistry | 0x0E688f5DCa4a0a4729946ACbC44C792341714e08 |
EFPListMinter | 0xDb17Bfc64aBf7B7F080a49f0Bbbf799dDbb48Ce5 |
TokenURIProvider | 0xC8BA343aeaF2b3b3EC79C25f05F4Ef459D9c7eFB |
OP Mainnet (Chain ID: 10)
Name | Address |
---|---|
EFPListRecords | 0x4Ca00413d850DcFa3516E14d21DAE2772F2aCb85 |
Ethereum Mainnet (Chain ID: 1)
Name | Address |
---|---|
EFPListRecords | 0x5289fE5daBC021D02FDDf23d4a4DF96F4E0F17EF |
Privileges
For each of the chains, the multisig has privileged control over the following functions in each of the contracts listed below.
EFPAccountMetadata
Pause
Allows the owner to cease all contract interaction
/** * @dev Pauses the contract. Can only be called by the contract owner. */ function pause() public onlyOwner { _pause(); }
Unpause
Allows the owner to resume all contract interaction
/** * @dev Unpauses the contract. Can only be called by the contract owner. */ function unpause() public onlyOwner { _unpause(); }
Add Proxy
Allows the owner to add an account to a list of privileged addresses which are allowed to update account metadata. This allows the List Minter to set default lists and metadata during the minting process.
/** * @dev Add proxy address. * @param proxy The proxy address. */ function addProxy(address proxy) external whenNotPaused onlyOwner { proxies[proxy] = true; emit ProxyAdded(proxy); }
Remove Proxy
Allows the owner to remove an account from the list of privileged proxy addresses
/** * @dev Remove proxy address. * @param proxy The proxy address. */ function removeProxy(address proxy) external whenNotPaused onlyOwner { proxies[proxy] = false; emit ProxyRemoved(proxy); }
EFPListRecords
Pause
Allows the owner to cease all contract interaction
/** * @dev Pauses the contract. Can only be called by the contract owner. */ function pause() public onlyOwner { _pause(); }
Unpause
Allows the owner to resume all contract interaction
/** * @dev Unpauses the contract. Can only be called by the contract owner. */ function unpause() public onlyOwner { _unpause(); }
EFPListRegistry
Pause
Allows the owner to cease all contract interaction
/** * @dev Pauses the contract. Can only be called by the contract owner. */ function pause() public onlyOwner { _pause(); }
Unpause
Allows the owner to resume all contract interaction
/** * @dev Unpauses the contract. Can only be called by the contract owner. */ function unpause() public onlyOwner { _unpause(); }
Set TokenURIProvider
Allows the owner to set the TokenURIProvider contract address
/** * @notice Sets the token URI provider. * @param tokenURIProvider_ The new token URI provider. */ function setTokenURIProvider(address tokenURIProvider_) external onlyOwner { tokenURIProvider = ITokenURIProvider(tokenURIProvider_); emit TokenURIProviderChange(tokenURIProvider_); }
Set PriceOracle
Allows the owner to set the priceOracle
contract address. This contract is currentlet unset.
/** * @notice Sets the price oracle. * @param priceOracle_ The new price oracle. */ function setPriceOracle(address priceOracle_) external whenNotPaused onlyOwner { priceOracle = IEFPListNFTPriceOracle(priceOracle_); emit PriceOracleChange(priceOracle_); }
Withdraw
Allows the owner to withdraw Ether from the contract
/** * @notice Withdraws Ether from the contract. * * @param recipient The address to send the Ether to. * @param amount The amount of Ether to send. * @return Whether the transfer succeeded. */ function withdraw(address payable recipient, uint256 amount) public onlyOwner returns (bool) { require(amount <= address(this).balance, 'Insufficient balance'); (bool sent,) = recipient.call{value: amount}(''); require(sent, 'Failed to send Ether'); return sent; }
Set MintState
Allows the owner to modify limitations when minting lists
/// @notice Sets the mint state. /// @param _mintState The new mint state. function setMintState(MintState _mintState) external whenNotPaused onlyOwner { mintState = _mintState; emit MintStateChange(_mintState); }
Set MaxMintBatchSize
Allows the owner to modify limitations on the maximum number of lists that can be minted in one transanction
/// @notice Sets the max mint batch size. /// @param _maxMintBatchSize The new max mint batch size. function setMaxMintBatchSize(uint256 _maxMintBatchSize) external whenNotPaused onlyOwner { maxMintBatchSize = _maxMintBatchSize; emit MaxMintBatchSizeChange(_maxMintBatchSize); }
EFPListMinter
Pause
Allows the owner to cease all contract interaction
/** * @dev Pauses the contract. Can only be called by the contract owner. */ function pause() public onlyOwner { _pause(); }
Unpause
Allows the owner to resume all contract interaction
/** * @dev Unpauses the contract. Can only be called by the contract owner. */ function unpause() public onlyOwner { _unpause(); }
TokenURIProvider
Set BaseURI
Allows the owner to set the BaseURI use for contructing token URIs
/** * @dev Sets the base URI for token URIs * @param baseURI The new base URI */ function setBaseURI(string memory baseURI) external onlyOwner { _baseURI = baseURI; }