Getting Started

From issuance to redemption: a step-by-step guide

A role-based guide covering every stage of issuance, backend process, and on-chain transaction, from start to finish.

01Concepts

Three foundational layers

The Cleanverse RWA platform is built on the three interconnected layers that make up the Cleanverse Trust Framework - the Cleanverse Verified Identity (CVI), Cleanverse Verified Asset (CVA), and the Programmed Governance policy layer that determines how trusted value may be issued, transferred and utilised before the value even moves.

IdentityCVI

Cleanverse Verified Identity (CVI)

A trusted on-chain credential issued by Cleanverse after identity attestation, bound to a wallet address.

What it is

A CVI represents a trusted financial identity anchored to verified financial relationships with licensed financial institutions. Once established, the CVI is represented by a non-transferable on-chain credential permanently associated with a connected wallet, creating a persistent trusted financial identity that can be relied upon across the Cleanverse network.

Why it's needed

CVI allows institutions to enforce the same established governance within TradFi onchain, with known counterparties being verifiable and auditable.

How it works

An investor provides their wallet and attestation of real world financial relationship. Once verified, the issued CVI is bound to their wallet, and allows the user access to verified assets.

Example: wallet 0xA7F3...9C21 holds a Tier 2 CVI and may subscribe to all Tier-2-allowed CVAs. If the issuer enables a whitelist, the wallet must also be on it (whitelist AND CVI are both required).

AssetCVA

Cleanverse Verified Asset (CVA)

A token verified by licensed institutions with built-in compliance - every transfer checks the recipient's CVI against on-chain rules before settlement.

What it is

A CVA — Cleanverse Verified Asset — is a regulated token deployed on a public chain. The token contract has a built-in compliance gate. Before any transfer, mint, or burn, the contract asks the Policy whether the recipient holds a valid CVI. V0 ships a single standard template that issuers deploy.

Why it's needed

Putting regulated assets on a public chain is hard because of compliance. The CVA encodes the rules in the contract itself: no central server interception, no manual approval. Rules are programmable, auditable, and upgradeable through on-chain governance.

How it works

Each CVA registers a Policy at deployment (the constructor requires a non-zero policy address). The Policy holds the eligible CVI list and the transfer rules. On every transfer the contract asks the Policy to approve, then runs the token logic and notifies any registered Transfer Hooks.

Example: 'Treasury Note · S01' is a CVA with a max supply of 50,000,000. Only wallets holding a Tier-2-or-higher CVI may subscribe and hold. The contract enforces this even if the issuer's UI is offline.

GatePolicy

CVA Policy

A shared contract that every CVA calls before transfer. It embeds eligibility and freeze rules into the asset before it even moves.

What it is

The CVA Policy is a single shared contract holding the canonical rules for who can hold a CVA. Every CVA records its Policy address at deployment, and every transfer or mint triggers a check against it. One Policy can serve many CVAs, or a platform admin can assign a different one per project.

Why a shared gate

Centralising compliance logic in one contract means an issuer can't loosen the rules by accident, or on purpose. Upgrades happen once, at the policy level, and every CVA inherits them automatically. Freeze, regional restrictions, and tier gating all live in one auditable place.

How it works

The Policy returns either an approval or a reason for rejection. The CVA contract first checks its own freeze and pause state, then asks the Policy, then runs the token logic and notifies its transfer hooks. Compliance rule changes are made from the issuer-side CVI rules panel and signed onchain.

Example: setting the Policy to allowlist Hong Kong and Singapore means any CVI registered in either region passes; everyone else gets an explicit 'region not allowed' revert.

How they work together

CVI

Wallet identity credential

Issued by Cleanverse after user attestation, bound to the wallet address

CVA

The door to compliant assets

A regulated token (ERC20) with a built-in compliance gate. Every transfer verifies CVI first.

Policy

The shared lock

One Policy contract decides which CVI tiers and regions may hold which CVA.

The CVI is the key, the CVA is the door, the Policy is the lock. Without a CVI the door won't open. The Policy can refuse a key even if the key is technically valid. Every action (subscribe, claim, redeem) re-checks all three at the moment of execution.

02Roles

Two roles, one product

The platform is built around two user-facing roles: Issuers create and manage CVAs, while investors invest and redeem them. A platform-level Admin role sits above both, governing Cleanverse credentials and audit trails, but never owns or operates a project directly.

Admin and Issuer are distinct accounts with distinct scopes. Admin manages platform-wide functions, while Issuer is a project-scoped account responsible for the day-to-day issuance workflow. Investors don't hold an account on the platform at all; their only credential is the CVI tied to their wallet.

Primary

Issuer

Builds a CVA for a real-world asset, distributes yield on schedule, and handles redemption at maturity. One Issuer account can own many projects.

  • Create the project brief and upload disclosure files (public or private)
  • Configure the CVA: symbol, decimals, max supply, admin and minter wallets, compliance rules
  • Deploy or import the token contract, then register it on Cleanverse
  • Review and approve CVI applications, then sign the per-wallet credential
  • Open the primary market (price, cap, window, optional whitelist) and Publish
  • Run yield distributions on schedule, and configure redemption terms and the escrow pool

Investor

No account, no email, no password need, just a wallet plus a CVI credential. From discovery to redemption, every step happens on the investor portal or onchain.

  • Verify your identity and obtain a CVI via Cleanverse
  • Wait for the issuer or Cleanverse to issue the credential to your wallet
  • Connect your wallet on the asset page — the interface shows live CVI eligibility and chain status
  • Approve the payment token, then sign the Purchase to receive the CVA
  • Track holdings and yield on the investor portal
  • Claim yield per cycle, and redeem onchain at maturity

03Issuer flow

The CVA Lifecycle

Every asset moves through five stages, from draft to closed. The scenarios below walk through the most common paths — each step links to the exact action you'd take and what happens on-chain behind it

Project status flow

  1. 01

    Draft

    Project created. Only the issuer can see it.

  2. 02

    Configured

    Token config saved: symbol, supply, admin and minter locked.

  3. 03

    Deployed

    CVA contract on chain. Status = Deployed

  4. 04

    Published

    Visible to investors; primary market open for subscription.

  5. 05

    Closed

    Read-only archive; yield settled, redemption ended.

Scenario A: Issue a CVA, from Draft to Published

Five steps take you from a blank project to an asset investors can see and subscribe to. The last step branches into two paths, open or whitelisted, depending on how you want to control who can invest.

  1. 01

    Create the project brief

    Enter the basics: project name, issuer name, asset type, jurisdiction, cover image, and description. Fill in asset details (location, valuation method, cash flow source, term) and risk details (distribution, risk disclosures, redemption rules). Submit to create the project.

  2. 02

    Upload disclosure files

    Add your prospectus, risk disclosures, and term sheets. Mark each file as public (visible to investors) or private (issuer only). You can upload, remove, or change visibility anytime from the Files tab.

  3. 03

    Configure the CVA

    Set the token's symbol, decimals, max supply, admin and minter wallet addresses, and compliance rules. Save on the Token Config tab — the form will flag errors before you can save (for example, a missing admin address or a supply mismatch).

  4. 04

    Deploy or import the contract

    Deploy the contract with one click from the Contract tab and watch its progress in real time.

  5. 05

    Verify, register, open the market, publish

    Run on-chain verification to confirm the contract's Policy and max supply match what's on record. Register the asset with Cleanverse — this is required before publishing. Then set the price, cap, subscription window, and (if needed) a whitelist, sign the sale terms on-chain, and publish.

Whitelist vs open subscription (expand)+ Expand

Open subscription (no whitelist)

Any wallet with a valid CVI can subscribe. No individual approval needed.

  • • Leave 'Require whitelist' unchecked on the Primary Market page
  • • Investors see a unified subscription entry
  • • The Policy check is enough; the contract calls the subscribe entry directly

Whitelisted subscription

Use for invite-only issuance (qualified investor tranches, institutional whitelists).

  • • Check 'Require whitelist' and save the terms
  • • Open the Whitelist sub-tab to add wallet addresses — the admin signs a per-wallet whitelist approval
  • • Both a Whitelist spot and a valid CVI are required; either one alone gets rejected

SCENARIO B - YIELD

Distribute yield on schedule

On a set schedule - monthly, quarterly, semi-annually, or annually, distribute investment returns to every CVA holder in proportion to what they hold. The system reads holder balances directly from the blockchain and records each cycle separately.

  1. 01

    Initialise yield config

    Pick a cycle (monthly / quarterly / semi-annually / annually) and the reward token (aUSDC or aUSDT). Save the form on the Yields tab; the system deploys the yield distributor for you.

  2. 02

    Bind the asset to the distributor (Transfer Hook)

    A one-time setup step, required once per CVA. Make sure the distributor holds a valid CVI, connect and switch to the right wallet, sign the binding transaction on-chain, then submit the transaction hash to the bind form.

  3. 03

    Create a yield record

    Enter a title, total amount, and record date. The per-token payout is calculated automatically from the token supply and reward token decimals.

  4. 04

    Approve + Distribute on chain

    On the Yield tab, the admin wallet first approves the distributor to spend the reward tokens, then signs the distribution for that cycle. If needed, the progress panel can re-check onchain receipts to confirm the transaction went through.

  5. 05

    Investors claim per cycle

    Each cycle moves through three stages: receivable, pending, and confirmed. Investors click Claim on their Yield page, sign the claim with their wallet, and the platform records it once the on-chain transaction is confirmed.

SCENARIO C - REDEMPTION

Scenario C: Configure redemption at maturity

Set redemption rules, pre-fund the escrow pool, and investors can redeem on chain during the redemption window. The unit price defaults to the primary market price, and the contract automatically enforces a minimum and maximum per redemption.

  1. 01

    Configure redemption terms

    Set the redemption window along with the per-wallet minimum and maximum. The admin wallet signs the onchain redemption configuration. The unit price is inherited from the primary market price, so the same onchain price is used throughout.

  2. 02

    Issue a CVI to the contract itself

    The contract holds the escrow pool. If the payment token is itself a CVA, the contract must hold a CVI to receive transfers. Use the CVI form on the Contract tab to issue a credential to the contract address.

  3. 03

    Pre-fund the escrow pool

    Transfer the reward stablecoin directly to the contact address, shown on the Holders page. The Escrow panel shows pending, required, and withdrawable balances in real time.

  4. 04

    Investors redeem on chain

    During the redemption window, an investor signs the redemption transaction for their chosen amount on the CVA contract. In a single transaction, the contract burns their tokens and transfers the proportional refund from the escrow pool.

  5. 05

    Monitor redemption

    Monitor total supply on the Holders page. Every transaction is publicly visible and feeds each investor's Transactions panel. Admins can withdraw any unused escrow funds to any address from the Escrow panel.

Phase 03 doneIssuer flow
Role switch
Phase 04 startsInvestor flow

04Investor flow

Investor: from verification to redemption

No account needed, just a browser with a wallet extension. Once you have verified your identity, you will be able to access eligible assets. Every step is verifiable onchain.

Investor journey

  1. Discover

    Open the asset page and review its disclosures and risk files.

  2. Apply CVI

    Complete verification through Cleanverse to get your Cleanverse Verified Identity (CVI) — this is what confirms you're eligible to invest. Once submitted, the credential is issued directly to your wallet.

  3. Subscribe

    Two onchain transactions, Approve, then Purchase, deliver the CVA to your wallet.

  4. Hold

    Your tokens live in your wallet. Your balance is read live from the blockchain.

  5. Claim

    Each cycle, sign the claim for that cycle from your Yield page.

  6. Redeem

    At maturity, sign the redemption transaction during the window the issuer has set.

Scenario A: Asset Subscription

Five simple steps from browsing asset listings to receiving the CVA in your wallet. Each step has a visible action point on the platform which can be verified post-action.

  1. Open the asset page

    Use the link shared by the asset issuer, and confirm the project is marked as Published. The asset page shows the cover, term sheet, public disclosures, primary market terms, and the subscription panel.

  2. Connect wallet + switch chain

    Choose the wallet that will receive the CVA — it must match the wallet holding your CVI. If your wallet isn't already on the project's chain, you'll be prompted to switch automatically.

  3. Check CVI eligibility

    The platform checks your eligibility and shows one of four statuses (see below). Subscription stays disabled until your status is "Eligible." This check is re-verified onchain when you sign the purchase.

  4. Read terms + enter amount

    Review the prospectus, risk disclosures, and primary market terms, then confirm you've read them. Enter your subscription amount — it must fall within the issuer's minimum and maximum, and amounts outside that range will be rejected.

  5. Approve + Purchase

    Approve the payment token (stablecoin) for the CVA contract, then confirm the purchase. If you already have sufficient allowance approved, the "Approve" step is skipped automatically.

CVI Eligibility Statuses ▾

The eligibility check returns one of four statuses, each with its own explanation and next step. Subscription is only enabled when your status is "Eligible."

Eligible

Your wallet holds a valid CVI matching the project's required tier. You may subscribe.

No CVI yet

You haven't applied, or your application was rejected. Submit a new one via Cleanverse.

Under review

Your application has been submitted and is awaiting review by Cleanverse or the issuer. Check back again.

Restricted

Your CVI is frozen, expired, or below the required tier. Contact the issuer or Cleanverse.

Scenario B - Yield Claim

Scenario B: Claim yield income

Yield is paid per cycle, in proportion to your holdings. Just click Investors can claim from their portal, which lists every cycle for each CVA held.

  1. Open the Yield page

    The "My Yield" view shows every claimable position across the CVAs you hold, grouped by asset. Each information card shows the next cycle you can claim and the total you've claimed so far.

  2. View per-cycle detail

    Click 'View detail' to see each cycle's status (receivable, pending, or confirmed), plus the on-chain record date and the per-token amount.

  3. Sign Claim

    Click Claim, and your wallet signs the claim for that cycle on the yield distributor. No separate approval is needed. The platform records the claim from the onchain transaction hash.

  4. Verify receipt

    The reward stablecoin lands in your wallet, and your lifetime-claimed total updates.

SCENARIO C - REDEMPTION

Scenario C: Redeem at maturity

The redemption window is set by your issuer, and the redemption price defaults to the primary market price. The contract checks the escrow balance upfront, so you'll see any issue before you sign.

  1. Open the Redemption card

    Find the "Redemption" panel on the asset page or under Holdings. It shows the redemption window, price, your maximum redeemable amount, and the live escrow status.

  2. Confirm terms

    Check the window, unit price, and your maximum redeemable balance. Redeem stays disabled if the window is closed, escrow is empty, or your balance is zero.

  3. Sign redeem

    Enter the amount and confirm the redemption transaction in your wallet. In a single transaction, the contract burns your tokens and transfers the proportional refund from escrow.

  4. Verify receipt

    Funds flow from the escrow pool to your wallet; your holdings decrease accordingly. You can cross-check on a block explorer.

05Reference

Common errors

The errors new operators and investors run into most often — what they look like, and how to recover. Keep this tab open during your first issuance or first subscription.

Common errors

7 most-asked
1

Wallet on wrong chain

Switch your wallet to the chain the project operates on. The investor portal will prompt you automatically, and the error message will identify the chain you need.

2

No CVI or expired CVI

Apply for a CVI through Cleanverse. The issuer (or Cleanverse) must approve and issue the credential before subscription becomes eligible. Frozen or revoked credentials need a new application.

3

Sale not configured onchain

The issuer hasn't signed the on-chain sale configuration yet. Wait for the sale status to sync (up to 30 seconds), then refresh. Publish stays disabled until the sync confirms the onchain state.

4

Amount above per-wallet cap

The contract enforces a per-wallet minimum, maximum, and per-cycle limit. Lower your subscription amount, or ask the issuer to raise the cap from the Primary Market tab.

5

Redemption escrow empty

An admin needs to top up the escrow pool. Reserve 1.5–2× the expected redemption volume. The Redemption panel shows pending, required, and withdrawable balances in real time.

6

Asset not registered with Cleanverse

Publish is blocked until the asset's registration status is "Issued." The issuer needs to complete asset registration on Cleanverse from the Contract tab and wait for confirmation.

7

Insufficient gas for an onchain call

Approve, Purchase, Claim, and Redeem all require gas. Keep a small native balance (for example, 0.001 ETH) on the project's chain — gas is spent whether or not the transaction succeeds.

06FAQ

Frequently Asked Questions

Q.1I see the project but the Subscribe button is greyed out.▾
Check these in order: your wallet is connected and on the right chain; the CVI eligibility card shows green; the project is within its subscription window; the on-chain sale is configured; and the max supply hasn't been reached. The interface will surface whichever blocker it hits first.
Q.2Are Approve and Purchase two separate transactions? Will the gas be high?▾
Yes, Approve and Purchase are independent onchain transactions. The system checks your existing allowance first, and if it's sufficient, it skips Approve and sends only Purchase. Both transactions are inexpensive on Base and the BSC testnet (under 0.001 in the chain's native token).
Q.3My yield claim failed. What now?▾
Common causes are insufficient gas, being on the wrong chain, an RPC outage, or the yield distributor being paused by an admin. Switch to the project's chain, make sure you have a small native balance, and retry. If it still fails, the issuer's Yield page shows the distributor's status.
Q.4Redemption failed with 'insufficient escrow balance'.▾
The on-chain escrow — the reward stablecoin balance held by the CVA contract — doesn't cover your redemption amount. Ask the issuer to top it up via Redemption → Escrow pool → Deposit. They should reserve 1.5–2× the expected redemption volume.
Q.5I've been whitelisted but still can't subscribe.▾
Whitelisting and a valid CVI are both required — one alone isn't enough. Confirm your wallet also holds a valid CVI. If everything looks right, refresh the page or re-check eligibility; whitelist additions are signed onchain and can take a few seconds to propagate.
Q.6Was gas consumed when my on-chain Purchase or Redeem failed?▾
Yes, gas is spent regardless of the outcome. If the contract reverts before completing (insufficient balance, not approved, outside the window, empty escrow), gas is still spent even though the CVA's state doesn't change. Follow the error message and retry.
Q.7Can I change the primary market terms after publishing?▾
Yes. The window dates, per-wallet minimum and maximum, and whitelist toggle can all be edited and re-signed onchain. Max supply and the compliance rules are locked once the contract is deployed. Closing the sale is reversible until you archive the project.
Q.8What happens to my yield if I transfer my tokens to another wallet?▾
The Transfer Hook notifies the yield distributor, so the receiving wallet is credited based on its holdings at the next snapshot. Any yield that was already credited but not yet claimed stays with the tokens — onchain claims always go to whoever currently holds the tokens at the time of the claim.

Ready to start?

Whether you're issuing a CVA or subscribing to one, the right portal is one click away.