Join our community of builders on

Telegram!Telegram

Interfaces

Smart contract interfaces utilities and implementations

List of standardized interfaces

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

  • IERC7913SignatureVerifier
  • IERC7943

Detailed ABI

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

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

requestRelay(uint256 value, uint256 gasLimit, address refundRecipient)

external

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

forcedTransfer(address from, address to, uint256 amount) → bool result

external

#

Requires specific authorization. Used for regulatory compliance or recovery scenarios.

setFrozenTokens(address account, uint256 amount) → bool result

external

#

Requires specific authorization. Frozen tokens cannot be transferred by the account.

canTransact(address account) → bool allowed

external

#

This is often used for allowlist/KYC/KYB/AML checks.

getFrozenTokens(address account) → uint256 amount

external

#

It could return an amount higher than the account's balance.

canTransfer(address from, address to, uint256 amount) → bool allowed

external

#

This can involve checks like allowlists, blocklists, transfer limits and other policy-defined restrictions.

ForcedTransfer(address indexed from, address indexed to, uint256 amount)

event

#

Frozen(address indexed account, uint256 amount)

event

#

ERC7943CannotTransact(address account)

error

#

ERC7943CannotTransfer(address from, address to, uint256 amount)

error

#

ERC7943InsufficientUnfrozenBalance(address account, uint256 amount, uint256 unfrozen)

error

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

forcedTransfer(address from, address to, uint256 tokenId) → bool result

external

#

Requires specific authorization. Used for regulatory compliance or recovery scenarios.

setFrozenTokens(address account, uint256 tokenId, bool frozenStatus) → bool result

external

#

Requires specific authorization. Frozen tokens cannot be transferred by the account.

canTransact(address account) → bool allowed

external

#

This is often used for allowlist/KYC/KYB/AML checks.

getFrozenTokens(address account, uint256 tokenId) → bool frozenStatus

external

#

It could return true even if account does not hold the token.

canTransfer(address from, address to, uint256 tokenId) → bool allowed

external

#

This can involve checks like allowlists, blocklists, transfer limits and other policy-defined restrictions.

ForcedTransfer(address indexed from, address indexed to, uint256 indexed tokenId)

event

#

Frozen(address indexed account, uint256 indexed tokenId, bool indexed frozenStatus)

event

#

ERC7943CannotTransact(address account)

error

#

ERC7943CannotTransfer(address from, address to, uint256 tokenId)

error

#

ERC7943InsufficientUnfrozenBalance(address account, uint256 tokenId)

error

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

forcedTransfer(address from, address to, uint256 tokenId, uint256 amount) → bool result

external

#

Requires specific authorization. Used for regulatory compliance or recovery scenarios.

setFrozenTokens(address account, uint256 tokenId, uint256 amount) → bool result

external

#

Requires specific authorization. Frozen tokens cannot be transferred by the account.

canTransact(address account) → bool allowed

external

#

This is often used for allowlist/KYC/KYB/AML checks.

getFrozenTokens(address account, uint256 tokenId) → uint256 amount

external

#

It could return an amount higher than the account's balance.

canTransfer(address from, address to, uint256 tokenId, uint256 amount) → bool allowed

external

#

This can involve checks like allowlists, blocklists, transfer limits and other policy-defined restrictions.

ForcedTransfer(address indexed from, address indexed to, uint256 indexed tokenId, uint256 amount)

event

#

Frozen(address indexed account, uint256 indexed tokenId, uint256 amount)

event

#

ERC7943CannotTransact(address account)

error

#

ERC7943CannotTransfer(address from, address to, uint256 tokenId, uint256 amount)

error

#

ERC7943InsufficientUnfrozenBalance(address account, uint256 tokenId, uint256 amount, uint256 unfrozen)

error

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

This interface provides a standard way to register and validate DKIM public key hashes onchain Domain owners can register their DKIM public key hashes and third parties can verify their validity The interface enables email-based account abstraction and secure account recovery mechanisms.

The ERC-165 identifier for this interface is 0xdee3d600.

isKeyHashValid(bytes32 domainHash, bytes32 keyHash) → bool

external

#

Checks if a DKIM key hash is valid for a given domain

KeyHashRegistered(bytes32 domainHash, bytes32 keyHash)

event

#

Emitted when a new DKIM public key hash is registered for a domain

KeyHashRevoked(bytes32 domainHash)

event

#

Emitted when a DKIM public key hash is revoked for a domain