> For the complete documentation index, see [llms.txt](https://www.ankitavirani.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.ankitavirani.com/experience/protocols/ercs-and-eips/erc-3643-1.md).

# ERC-3643

## ERC-3643: Ushering in a New Era of Real-World Asset Tokenization

The blockchain and decentralized finance landscape is rapidly evolving, introducing innovations that redefine asset ownership and investment. Among these advancements is ERC-3643, a standard poised to revolutionize the tokenization and trading of real-world assets (RWAs).

### **What is ERC-3643?**

ERC-3643, also known as the T-REX protocol (Token for Regulated Exchange), is a groundbreaking technical standard developed on the Ethereum blockchain. Designed for tokenizing RWAs, this open-source suite of smart contracts facilitates the issuance, management, and transfer of permissioned tokens, representing ownership or fractional ownership of tangible assets like real estate, art, and commodities.

ERC-3643 integrates blockchain's transparency with compliance mechanisms to ensure tokenized assets adhere to regulations and foster investor trust. Below, we explore its defining features and functionalities.

***

### **How ERC-3643 Works**

ERC-3643 employs permissioned tokens and digital identity verification to embed regulatory compliance directly into the protocol’s design. Transfers occur only when the investor’s digital identity (via ONCHAINID) and offering rules are validated, ensuring adherence to regulations.

***

### **Key Features**

#### **1. Regulatory Compliance**

ERC-3643 addresses the complexities of navigating regulatory frameworks by embedding compliance mechanisms directly within its standard. The protocol integrates Know Your Customer (KYC) and Anti-Money Laundering (AML) checks, streamlining processes and fostering trust among participants.

For example, an investor purchasing a tokenized fraction of a beachfront property undergoes automated KYC/AML checks before the transaction is processed, ensuring compliance from the outset.

#### **2. Enhanced Security and Transparency**

Leveraging Ethereum’s blockchain, ERC-3643 tokens offer immutability and transparency. Every transaction is publicly recorded, reducing fraud risk and ensuring token authenticity. This secure environment protects both investors and issuers.

#### **3. Streamlined Tokenization and Interoperability**

Built upon the widely adopted ERC-20 standard, ERC-3643 simplifies development and integration. This interoperability extends to Ethereum-based decentralized finance (DeFi) protocols, enabling innovative financial products and services for tokenized assets.

#### **4. Fractional Ownership and Liquidity**

ERC-3643 enables fractional ownership by dividing assets into smaller, tradable units. This feature democratizes access to markets previously restricted by high entry barriers. Additionally, ERC-3643 tokens can be traded on Ethereum’s secondary markets, enhancing liquidity and facilitating efficient asset allocation.

***

### **Technical Overview**

#### **Core Components**

<figure><img src="/files/rquV7CgPq29BhV0uacox" alt=""><figcaption></figcaption></figure>

* **Token Contract:** Implements the ERC-3643 standard
* **Identity Registry:** Manages user identities and verifies participants
* **Transfer Manager:** Enforces compliance rules during transactions
* **Compliance Service:** Ensures regulatory adherence

#### **Workflow**

<figure><img src="/files/hwnurylsW97kyb97CyW4" alt=""><figcaption></figcaption></figure>

***

### **Code Example**

```solidity
// ERC-3643 Token Implementation
contract TREXToken is ERC3643 {
    constructor(
        string memory _name,
        string memory _symbol,
        address _identityRegistry,
        address _compliance
    ) {
        name = _name;
        symbol = _symbol;
        identityRegistry = IIdentityRegistry(_identityRegistry);
        compliance = ICompliance(_compliance);
    }

    function transfer(address _to, uint256 _amount) public override returns (bool) {
        require(identityRegistry.isVerified(msg.sender), "Sender not verified");
        require(identityRegistry.isVerified(_to), "Receiver not verified");
        require(compliance.canTransfer(msg.sender, _to, _amount), "Transfer not compliant");

        _transfer(msg.sender, _to, _amount);
        return true;
    }
}
```

***

### **Advantages Over Traditional Standards**

| **Feature**         | **ERC-20** | **ERC-3643**  |
| ------------------- | ---------- | ------------- |
| Compliance Checks   | Manual     | Automated     |
| Identity Management | None       | Built-in      |
| Transfer Controls   | Basic      | Advanced      |
| Regulatory Support  | Limited    | Comprehensive |

***

### **Real-World Applications**

#### **1. Security Token Offerings (STOs)**

ERC-3643 streamlines the tokenization of regulated financial instruments, such as securities, enabling automated compliance.

#### **2. Fractional Ownership of Tangible Assets**

Platforms like RealT and Codex Protocol utilize ERC-3643 to tokenize real estate, artworks, and collectibles, democratizing access to high-value markets.

#### **3. Supply Chain and Loyalty Programs**

The protocol facilitates efficient tokenization of supply chain assets and loyalty programs, creating new use cases for blockchain technology.

***

### **Conclusion**

ERC-3643 is transforming the tokenization of regulated assets by integrating compliance mechanisms directly into blockchain protocols. It ensures transparency, enhances security, and democratizes access to traditionally exclusive markets. As regulatory frameworks evolve, ERC-3643 will play a pivotal role in shaping the future of real-world asset tokenization, bridging the gap between physical and digital realms.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.ankitavirani.com/experience/protocols/ercs-and-eips/erc-3643-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
