Our work
We developed the issuance, ownership and asset-servicing infrastructure for NexusRWA Ledger. The work connected token contracts to eligibility checks, document commitments, reserve attestations, distributions and redemption workflows.
Issuing a token creates a record of balances. Operating an investment product requires a continuing connection between those balances and the asset behind them. Investor eligibility can expire. A valuation can change. A custodian report can become stale while the token continues to circulate. NexusRWA Ledger addresses the operational gap between a blockchain record and the external evidence needed to support decisions about issuance, transfers and payments.
The project is a private institutional platform for issuing and operating tokenized real-world assets across EVM networks. Its architecture brings documents, investor eligibility, asset attestations and cash flows into one Asset Program. The central challenge was deciding which facts the blockchain can enforce and which it must receive from an authorised external party. A second challenge follows when the same product spans several chains. We connected cross-chain supply and payment rights to reconciliation records so delayed messages and indexers remain visible.
The asset program had to outlast the issuance transaction
A property interest, an allocated commodity and a private-credit fund do not share the same operating rules. A commodity claim may depend on verified quantities in custody. A fund share may depend on net asset value and a redemption window. Applying one generic token contract to all of them would move important differences into manual procedures outside the system. We organised the architecture around an Asset Program that binds each product to its legal structure, token profile, compliance policy and accounting model.
The program has a stable assetId shared by its contracts and operational records. The AssetProgramFactory deploys approved templates and registers the resulting modules against that identifier. It creates only the modules required by the selected profile. A fixed-supply property interest does not need the same vault machinery as a fund with asynchronous redemptions. Activation depends on the mandatory checks in the client's policy rather than simply on successful contract deployment. This gives operators a defined path from configuration and approval to an active product.
Token profiles preserve those differences without forcing every integration to start from zero. The architecture includes an ERC-20 and ERC-7943 profile for configurable transfer controls, an ERC-3643 profile for products requiring its identity and compliance model, and ERC-4626 or ERC-7540 semantics for suitable fund structures. Each asset program records the token profile selected for its requirements. The program records the chosen implementation and policy so that a reviewer can identify the rules governing a particular issuance. Tokenization itself does not determine the legal rights of the holder. Those rights and the applicable offering conditions come from the client's legal structure and approved documentation.
Private evidence needed a verifiable public reference
The first technical conflict appears in the evidence layer. Investors and reviewers need to know which documents define the product, but legal agreements and identity records cannot simply become public blockchain data. We separated the document body from its commitment. The file remains in private encrypted storage while the DocumentCommitmentRegistry records a content hash, document type, effective date and the party that committed it. An authorised reviewer can retrieve the file and verify that its contents match the recorded hash.
Versioning is part of that model. A replacement offering document creates a new commitment and marks the previous version as superseded without erasing it. This preserves the ability to reconstruct which terms were in effect at a particular time. The commitment proves that a specific document matches the recorded version. It does not prove that the document is legally sufficient or that every statement inside it is true. Those questions remain with the relevant reviewers and evidence providers.
The architecture gives each type of information an explicit system of record. The application can present a unified view without treating every field as equally authoritative. A blockchain balance, an eligibility decision and a signed custody report have different origins and different failure modes.
| Record | Source | Check |
|---|---|---|
| Balances | Chain | Reconcile |
| Documents | Private store | Hash |
| Eligibility | Registry | Expiry |
| Reserves | Attestation | Signature |
| Claims | Vault | Proof |
This separation matters when systems disagree. Chain state is the reconciliation source for cached balances. A new file in object storage does not silently replace an active document commitment. An expired eligibility record cannot be made current by leaving a dashboard badge unchanged. Each decision can be traced to the source that actually governs it.
Transfer restrictions had to survive another interface
An investor portal can explain a transfer restriction, but the user may submit the same transfer through another wallet or API. We placed transfer enforcement in the token's execution path for restricted products. NexusRWA Ledger separates identity evidence, eligibility decisions and transfer policy. Sensitive KYC data remains with the provider or private client infrastructure. The on-chain registry carries only the necessary eligibility result, validity window, policy class and credential commitment.
The ComplianceController evaluates the applicable conditions when a transfer executes. These can include sender and receiver eligibility, concentration limits, lockups and the token's pause state. The frontend can simulate the decision to explain a likely rejection before submission, but the contract remains authoritative. Where the ERC-3643 profile is selected its identity and compliance mechanisms carry that responsibility. The design avoids layering an incompatible second transfer-control system onto the same token.
Institutional control also requires explicit administrative boundaries. Minting, freezing balances, forced transfers and policy changes are privileged operations rather than ordinary dashboard actions. The architecture separates issuer operations, compliance approval, treasury funding and upgrade authority. The administrative policy supports multisig approval and timelocks for high-impact changes, with a reason and audit reference retained for each action. These controls do not remove administrative power. They make its scope and use visible instead of allowing one application login to become an unrestricted contract administrator.
Reserve evidence controls issuance permissions
A current-looking reserve figure is not sufficient if minting can ignore it. The attestation layer therefore records statements with an asset identifier, schema, evidence hash, attestor, observation time and expiry. The schema distinguishes a custody quantity from a valuation or a document check. Signatures bind the statement to its asset, network, registry and validity window so a report cannot be reused in another context as a fresh assertion.
Reserve-backed profiles connect mint permission to attestation validity and the eligible backing for the resulting supply. Issuer authority and recipient eligibility are checked as separate conditions. This connects evidence freshness to an operational permission. If the report expires the system marks it stale and applies the configured policy to actions that depend on it. A fund or property structure uses its appropriate legal and economic constraints rather than inheriting a misleading universal reserve ratio.
Conflicting reports also need a defined state. The platform preserves both observations rather than overwriting one with the newest value. The asset's policy determines how the conflict affects report acceptance, review and new issuance. Revoking an auditor's key triggers review of affected attestations while preserving their history. The system can enforce how an external claim is used, but the quality of that claim still depends on the evidence, methodology and authorised party behind it.
A tokenized asset remains accountable when changes in its evidence change the operations the platform permits. NexusRWA Ledger connects document versions, eligibility and attestation state to issuance and transfer rules. The blockchain enforces those rules while preserving the distinction between a recorded claim and the external facts supporting it.
Verification needed its own identity and payment model
Periodic verification introduces several separate questions. We kept provider identity, job scope, deliverable evaluation and the resulting asset attestation as separate records. Treating a completed job as permanent proof of backing would collapse those decisions. NexusRWA Ledger uses ERC-8004 integration for agent identity and related trust signals while its own attestation layer records the specific assertion about an asset. An explicit client-approved attestor set remains the authority boundary. A public reputation score alone cannot authorise institutional minting.
The architecture uses ERC-8183 integration to coordinate paid verification jobs. A client funds an ERC-20 escrow, a provider submits a deliverable commitment and the job's evaluator completes or rejects the work. The funded job records its authorised evaluator and approval rules. A narrow integration hook links the accepted deliverable to the asset's attestation workflow. It does not turn payment completion into an unconditional permission to mint.
A verification record connects the operational steps without merging their meaning.
- The asset and the evidence package under review.
- The approved provider and its agent identity.
- The funded job and deliverable commitment.
- The evaluator's decision and reason reference.
- The resulting attestation and validity window.
Private evidence stays behind authorised access while hashes connect the report, job and asset record. This makes verification work traceable across participants without publishing confidential files. It also makes stalled work visible. A funded job with no submission, a report awaiting evaluation and a rejected result require different follow-up actions. The application distinguishes these job states from an accepted asset attestation.
The second conflict was one asset across several chains
Additional networks give a product more places to operate, but independently minting on each one can duplicate claims against the same backing. The architecture keeps canonical issuance authority on the home chain and routes movement through a CrossChainSupplyController. A source amount is locked or burned before an authenticated message authorises the corresponding destination action. The exact lock-and-mint or burn-and-mint model belongs to the approved adapter. Supply reconciliation accounts for the adapter's custody model, keeping locked backing separate from circulating claims.
Destination execution has its own checks. The controller verifies the source through the configured adapter, rejects replayed messages and rechecks the recipient's eligibility. Approval on one network does not automatically establish approval under a destination policy. Chain caps and movement limits constrain exposure alongside the global supply boundary. A syntactically valid message is not enough to create tokens. The controller accepts it only through an authorised route and within the program's current rules.
Bridge failure makes this distinction operationally important. Unresolved messages enter an exception queue and new cross-chain movements can pause while reconciliation examines the affected chains. An administrator cannot safely compensate for a delayed transfer by manually minting replacement supply. The original message might still execute. Separate pause domains allow local transfers or funded investor claims to continue where their policies permit. The incident response can isolate the bridge path without automatically stopping every function of the asset program.
Payouts needed a record date and a bounded claim path
The balance an investor holds today may differ from the balance that entitled them to last quarter's income. NexusRWA Ledger makes the record date part of each distribution. The indexer reconstructs ownership at that point, with token checkpoints available for profiles requiring direct historical balance queries. The distribution service calculates entitlements and commits them through a Merkle root. Treasury funds the DistributionVault and investors claim by submitting a proof of their allocation.
This avoids a contract transaction that loops over every holder to push payments. Each claim verifies membership in the committed entitlement set and checks whether it has already been consumed. The root becomes immutable after activation and changes before activation follow an explicit replacement or cancellation path. Contract accounting limits total claims to the funded amount. The payout path includes reentrancy protection and safe token handling because proof correctness alone does not make the payout path safe.
For distributions spanning several chains the controller commits a global amount and allocates chain-specific totals and roots. The global distribution is the accounting total for its chain-specific allocations. Each entitlement binds the distribution, investor, amount and chain so it cannot be replayed on another network. Record-date ownership reconstruction and supply reconciliation therefore support the same outcome. Cross-chain reconciliation keeps a movement of balances from becoming a second income entitlement.
Redemption had to reflect how the asset actually settles
Cash distributions and redeemable fund shares need different accounting. A suitable fund profile may accrue value through NAV rather than pay out every period. Fund profiles use share-based accounting, with separate request flows for asynchronous settlement. The architecture keeps reserve quantity, market valuation and legal ownership as separate records. A custodian confirming an asset's presence does not also establish its current price or the issuer's legal claim to it.
Controlled redemption follows the settlement constraints of the product. Tokens can be locked after eligibility checks while off-chain settlement proceeds, with burning linked to confirmation and a defined failure path. An asynchronous vault request moves from pending to claimable before the investor completes redemption. The system does not present a request as an immediate payout when liquidity still needs to be prepared. Failed or delayed settlement remains an operational state that can be reconciled rather than leaving a burned balance with no clear resolution.
The same discipline applies to other blockchain actions. A transaction hash indicates submission, not completion. The local state machine tracks approval, signing, broadcast and confirmation as well as replacement, failure and reorganisation. Indexers retain block references so records from orphaned blocks can be corrected. Issuers and investors can then distinguish a request awaiting approval from a transaction awaiting inclusion or an operation requiring manual review.
The operating model makes exceptions reviewable
NexusRWA Ledger organises its interfaces around separate responsibilities. Issuers configure programs and propose issuance. Compliance staff manage eligibility and exceptions. Auditors submit evidence, treasury operators fund payments and investors inspect their holdings and claims. Application permissions do not substitute for contract roles. Each privileged request needs the appropriate on-chain authority and an audit event linking the actor, asset, policy version and reason.
We connected transfer permissions, issuance and servicing to the records that authorise them. KYC status, document versions and attestations remain attached to the relevant asset program. Stale reports, expired eligibility, underfunded distributions and unresolved bridge messages produce distinct states that operators can review and reconcile.
The resulting structure gives each asset program a history that can be followed across systems. An issuer can identify the evidence supporting a mint. A reviewer can retrieve the document version referenced at issuance. Treasury can reconcile funded distributions against claims. Operations can isolate an unresolved bridge message without losing its relationship to global supply. Each action remains attached to the asset, policy and evidence that justified it.
See our architecture in practice.
DEVLAB · ARCHITECTURE EXAMPLE
Agent
Commerce
A look inside the software architecture behind Agent Commerce.
View architecture