Data Model: EVM Contract
Purpose: The EVM Contract entity is the off-chain record for a deployed smart contract. It links a legal Fund to the contract address, technical specifications, and recorded state.
Fields/Attributes
| Name | Type | Description | Validation Rules |
|---|---|---|---|
| Core Identification & Links | |||
id | Unique Identifier | The primary internal system ID for the contract record. | • Required • System-generated, Read-only |
| Fund association | Foreign Key | A reference to the Fund that this smart contract represents. | • Required, Unique |
| Blockchain Details | |||
status | Choice | The current status of the contract record in our system's lifecycle. | • Required • See Contract State Lifecycle. |
address | Text | The unique public blockchain address of the deployed smart contract. | • Required, Unique per network |
network | Choice | The blockchain network where the contract is deployed. | • Required • e.g., ETHEREUM_MAINNET |
deployment_tx_hash | Text | The transaction hash of the deployment transaction that created the contract on the blockchain. | • Required, Unique |
| Token & Contract Specification | |||
name | Text | The full, public name of the token represented by this contract. | • Required |
symbol | Text | The abbreviated token symbol for the asset. | • Required |
token_standard | Choice | The technical standard of the contract, defining its capabilities. | • Required • e.g., ERC20, ERC1400 |
total_supply | Big Integer | The maximum number of tokens that can ever be minted for this fund. | • Required |
abi | JSON | The contract's Application Binary Interface, required for backend services to interact with it. | • Required |
economic_model | Choice | Defines the economic model for how yield is handled by the contract. | • Required • Must be one of: PRICE_APPRECIATING, DIVIDEND_PAYING_BATCH, DIVIDEND_PAYING_STREAMING |
| Live On-Chain State | |||
tokens_distributed | Big Integer | A dynamic, read-only field showing the current number of tokens that have been issued. | • Read-only • System-managed |
| Compliance & Feature Flags | |||
is_allowlist_enabled | Boolean | A flag indicating if the contract restricts transfers only to wallets on an allow-list. | • Required |
is_pausable | Boolean | A flag indicating if the contract allows administrators to pause all token transfers. | • Required |
| Metadata | |||
created_at | Timestamp | The date and time the record was created in our system. | • Read-only |
updated_at | Timestamp | The date and time the record was last modified. | • Read-only |
Key Relationships
Fund: Each
EVM Contractrecord is inextricably linked to exactly one Fund (a one-to-one relationship) through the implementation's fund association field.EVM Transfers: An
EVM Contractis the source, destination, or subject of many blockchain events like token mints and EVM-transfers.
Global Business Rules
An
EVM Contractrecord can only be created for a Fund that is in the LEGAL-ACCEPTED state or a subsequent active state.The
addressmust be unique for a givennetwork.The system must prevent any action that would cause
tokens_distributedto exceedtotal_supply.The
economic_model(DIVIDEND_PAYINGorPRICE_APPRECIATING) must be set by the RWA Tokenization Engine before deployment. Once the contract's status isACTIVE, this field is immutable.If an
EVM Contract'seconomic_modelisDIVIDEND_PAYING_BATCH: The system will use the Smart Dividends Service (Capability A) to execute all profit distributions.If an
EVM Contract'seconomic_modelisDIVIDEND_PAYING_STREAMING: The system will use the Smart Dividends Service (Capability B). All yield is handled automatically by the smart contract's internal logic.If an
EVM Contract'seconomic_modelisPRICE_APPRECIATING: The system will use the Smart Dividends Service (Capability C). All yield is handled internally by the smart contract'sexchangeRatelogic. The Investor Portal will query the contract's current exchange rate (via the evm-api) to accurately display the value of an investor's holdings.
Auditing & Event History
The system records significant actions or changes involving an EVM Contract as immutable entries in the system-wide EventLog.