Interfaces

This document is better viewed at https://docs.openzeppelin.com/contracts/api/interfaces

List of standardized interfaces

These interfaces are available as .sol files. These are useful to interact with third party contracts that implement them.

  • IERC7540 (IERC7540Operator, IERC7540Deposit, IERC7540Redeem): Operator management and asynchronous deposit/redeem request interfaces for ERC-7540 tokenized vaults.

  • IERC7575 (IERC7575, IERC7575Share): Multi-asset ERC-4626 vaults and share-to-vault lookup interfaces.

  • IERC7786Attributes: Standard attributes for ERC-7786 cross-chain messaging.

  • {IERC7913SignatureVerifier}

  • {IERC7943}: ERC-20 based interface for RWA tokens with account restrictions, asset freezing, and forced transfers.

  • {IERC7969} (IDKIMRegistry): Onchain DKIM public key registry interface for email-based authentication.

Detailed ABI

IERC7540

import "@openzeppelin/community-contracts/interfaces/IERC7540.sol";

Interface of the fully asynchronous Vault interface of ERC7540, as defined in https://eips.ethereum.org/EIPS/eip-7540

Functions
IERC7575
  • share()

IERC4626
  • asset()

  • totalAssets()

  • convertToShares(assets)

  • convertToAssets(shares)

  • maxDeposit(receiver)

  • previewDeposit(assets)

  • deposit(assets, receiver)

  • maxMint(receiver)

  • previewMint(shares)

  • mint(shares, receiver)

  • maxWithdraw(owner)

  • previewWithdraw(assets)

  • withdraw(assets, receiver, owner)

  • maxRedeem(owner)

  • previewRedeem(shares)

  • redeem(shares, receiver, owner)

IERC20Metadata
  • name()

  • symbol()

  • decimals()

IERC20
  • totalSupply()

  • balanceOf(account)

  • transfer(to, value)

  • allowance(owner, spender)

  • approve(spender, value)

  • transferFrom(from, to, value)

IERC165
  • supportsInterface(interfaceId)

IERC7540Redeem
  • requestRedeem(shares, controller, owner)

  • pendingRedeemRequest(requestId, controller)

  • claimableRedeemRequest(requestId, controller)

IERC7540Deposit
  • requestDeposit(assets, controller, owner)

  • pendingDepositRequest(requestId, controller)

  • claimableDepositRequest(requestId, controller)

  • deposit(assets, receiver, controller)

  • mint(shares, receiver, controller)

IERC7540Operator
  • setOperator(operator, approved)

  • isOperator(controller, operator)

Events
IERC4626
  • Deposit(sender, owner, assets, shares)

  • Withdraw(sender, receiver, owner, assets, shares)

IERC20
  • Transfer(from, to, value)

  • Approval(owner, spender, value)

IERC7540Redeem
  • RedeemRequest(controller, owner, requestId, sender, shares)

IERC7540Deposit
  • DepositRequest(controller, owner, requestId, sender, assets)

IERC7540Operator
  • OperatorSet(controller, operator, approved)

IERC7575

import "@openzeppelin/community-contracts/interfaces/IERC7575.sol";

Multi-Asset ERC-4626 Vaults, as defined in https://eips.ethereum.org/EIPS/eip-7575

Functions
  • share()

IERC4626
  • asset()

  • totalAssets()

  • convertToShares(assets)

  • convertToAssets(shares)

  • maxDeposit(receiver)

  • previewDeposit(assets)

  • deposit(assets, receiver)

  • maxMint(receiver)

  • previewMint(shares)

  • mint(shares, receiver)

  • maxWithdraw(owner)

  • previewWithdraw(assets)

  • withdraw(assets, receiver, owner)

  • maxRedeem(owner)

  • previewRedeem(shares)

  • redeem(shares, receiver, owner)

IERC20Metadata
  • name()

  • symbol()

  • decimals()

IERC20
  • totalSupply()

  • balanceOf(account)

  • transfer(to, value)

  • allowance(owner, spender)

  • approve(spender, value)

  • transferFrom(from, to, value)

IERC165
  • supportsInterface(interfaceId)

Events
IERC4626
  • Deposit(sender, owner, assets, shares)

  • Withdraw(sender, receiver, owner, assets, shares)

IERC20
  • Transfer(from, to, value)

  • Approval(owner, spender, value)

share() → address shareTokenAddress external

The address of the underlying share received on deposit into the vault.

IERC7786Attributes

import "@openzeppelin/community-contracts/interfaces/IERC7786Attributes.sol";

Standard attributes for ERC-7786. These attributes may be standardized in different ERCs.

Functions
  • requestRelay(value, gasLimit, refundRecipient)

requestRelay(uint256 value, uint256 gasLimit, address refundRecipient) external