ERC-3643 Real World Assets (RWA)

The ERC-3643 token standard is variously known as "permissioned tokens", "real world asset tokens" or "T-REX (Token for Regulated EXchanges)". As the names suggest, ERC-3643 is designed to turn real world assets (RWAs), like company shares, loans, or real estate, into digital tokens that can be traded on the blockchain. Unlike regular tokens, it follow strict rules to make sure they meet legal requirements. With this standard, every token holder’s identity is verified to comply with regulations like Know Your Customer (KYC) and Anti-Money Laundering (AML) laws, making it ideal for assets that need extra security and regulatory approval.

ERC-3643 tokens integrate identity management through ONCHAINID, where verified participant identities are securely stored on-chain. Token transfers follow strict compliance rules, ensuring regulatory requirements are met before execution. While enhancing security and compliance, ERC-3643 remains interoperable with existing ERC-20 platforms, enabling seamless integration into blockchain ecosystems.

Note: Hedera’s system contract functions do not natively support ERC-3643 functionalities on HTS tokens. However, standard ERC-3643 functions can still be implemented within a smart contract and deployed on the network, similar to other EVM-compatible chains.

Interface ERC-3643 Functions

setOnchainID
function setOnchainID(address _onchainID) external;

Sets the token's onchain ID. Only the owner of the token contract can call this function.

setIdentityRegistry
function setIdentityRegistry(address _identityRegistry) external; 

RWA tokens link to verified identities on-chain managed through a decentralized identity system.

setIdentityRegistry
function setIdentityRegistry(address _identityRegistry) external

setIdentityRegistry allow contract owners additional administrative functions to manage compliance and identity registry settings.

setComplianceContract
function setComplianceContract(address _compliance) external

setComplianceContract allow contract owners additional administrative functions to manage compliance and identity registry settings.

forcedTransfer
function forcedTransfer(
    address _from,
    address _to,
    uint256 _amount
) external returns (bool);

Forces a transfer of tokens between two whitelisted addresses. Only an agent of the token can call this function.


Additional References

To get a deeper understanding of ERC-3643, see the following:

1. Implementation Details and Function Interactions

For comprehensive implementations of functions like setIdentityRegistry and their interactions with compliance modules or identity registries, refer to the Tokens Interface section. This section provides detailed function definitions and their roles within the ERC-3643 framework.

2. Supporting Contracts

  • Identity Registry: The Identity Registry Interface section details the contract responsible for managing and verifying investor identities, ensuring compliance with KYC/AML regulations.

  • Compliance Management: The Compliance Interface section outlines the contract that enforces compliance rules during token transfers, ensuring adherence to regulatory requirements.

3. Token Logic Examples

For insights into token operations:

  • Refer to the Tokens Interface section for details on the transfer function implementation. This demonstrates how compliance rules are integrated into standard ERC-20-like operations.

4. Forced Transfer Logic

For details on the forcedTransfer function, including permission checks and enforcement of whitelisting, refer to the Tokens Interface section.


Contributor: @sumanair

Last updated

Was this helpful?