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

This issuance platform is built on three interconnected compliance layers — 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

CVI, Cleanverse Verified Identity

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

Public chains are anonymous; compliance demands real identity. The CVI puts the wallet-to-identity mapping on chain, where it's verifiable and auditable, while personal data stays with Cleanverse. The wallet itself never stores PII on chain.

How it works

An investor submits their wallet and KYC materials through Cleanverse. Once Cleanverse approves, the CVI is issued on chain. The wallet uses the CVI to unlock subscription, holding, dividend claims, and redemption on any CVA. Admins can freeze or revoke a CVI from the issuer-side CVI console.

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

CVA, Cleanverse Verified Asset

A regulated token (an ERC20) with built-in compliance. Every transfer is gated by a Policy + CVI check.

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, the on-chain gate

A shared contract that every CVA calls before transfer. It encodes tier, region, and freeze rules.

What it is

The CVA Policy is a single shared contract that holds the canonical 'who can hold' ruleset. Every CVA records its policy address at deployment; every transfer or mint triggers a Policy check. The Policy can be shared across many CVAs or replaced per project by the platform admin.

Why a shared gate

Centralising compliance logic in one contract means an issuer can't accidentally (or maliciously) loosen the checks. Compliance upgrades happen once at the Policy, and every CVA inherits them. Freeze, regional restriction, 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 the transfer hooks. Compliance rule edits are made from the issuer-side CVI rules panel and signed on chain.

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 KYC, bound to your 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 has two user-facing roles. Issuers create CVAs; investors participate in them. A platform-level Admin role governs Cleanverse credentials and audit trails but never owns a project.

Admin and Issuer are not the same account. Admin handles platform-wide settings (Cleanverse credentials, user accounts, audit log) and Issuer is a project-scoped account that runs the daily issuance workflow. Investors never log in at all.

Primary

Issuer

Builds a CVA for a real-world asset, distributes dividends on schedule, 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 periodic dividends, and configure redemption terms + escrow pool

Investor

No account, no email, no password. A wallet plus a CVI credential is the entire identity. From discovery to redemption, every step happens on the investor portal or on chain.

  • Submit a CVI application (KYC materials via Cleanverse)
  • Wait for the issuer or Cleanverse to issue the credential to your wallet
  • Connect your wallet on the asset page; the UI shows live CVI eligibility + chain
  • Approve the payment token, then sign the Purchase to receive the CVA
  • Track holdings on the investor portal → Holdings; dividends on the investor portal → Dividends
  • Claim dividends per cycle, Redeem on chain at maturity

03Issuer flow

Issuer: the CVA lifecycle, end to end

Five project statuses (draft, configured, deployed, published, closed) span an asset's full journey. The three scenarios below cover the most common workflows; every step links to the specific UI action and on-chain call that backs 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; dividends settled, redemption ended.

Scenario A: Issue a CVA, from Draft to Published

Five steps from a blank project to an investor-visible asset. Step 5 splits into two modes (open vs whitelisted) depending on whether you want to gate investors.

  1. 01

    Create the project brief

    Fill in the project name, issuer name, asset type, jurisdiction, cover image, and a description. Three blocks: basic / asset (location, valuation method, cash flow source, term) / risk (distribution, risk disclosure, redemption rules). Submit the project to create it.

  2. 02

    Upload disclosure files

    Prospectus, risk disclosures, and term sheets. Toggle each one as public (visible to investors) or private (issuer only). Uploads, deletions, and visibility changes all happen on the Files tab.

  3. 03

    Configure the CVA

    Symbol, decimals, max supply, admin and minter wallet addresses, and the compliance rule JSON. Save on the Token Config tab. The form refuses to save if any field fails validation (for example, a zero admin address or a supply mismatch).

  4. 04

    Deploy or import the contract

    Click deploy on the Contract tab for a one-click deploy (an async job; the UI shows live progress). For an existing contract on Safe, choose manual import instead and record the existing address.

  5. 05

    Verify, register, open the market, publish

    Run the on-chain verification on the Contract tab (it reads the Policy and max supply back from chain). Sign the asset registration on Cleanverse (required before Publish). Set the price, cap, window, and optional whitelist. Sign the on-chain sale configuration. Then click Publish.

Whitelist vs open subscription (expand)+ Expand

Open subscription (no whitelist)

Any wallet with a valid CVI may subscribe. No per-wallet 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
  • • Whitelist AND CVI are both required (AND); one without the other gets rejected

Scenario B, Dividend

Scenario B: Distribute dividends on schedule

Per cycle (monthly, quarterly, semi-annually, or annually), distribute proceeds to all CVA holders proportionally to their holdings. The system reads holder balances from on chain and posts each cycle as a separate distribution record.

  1. 01

    Initialize dividend config

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

  2. 02

    Bind the asset to the distributor (Transfer Hook)

    Six-step bind on the Dividends tab: make sure the distributor holds a CVI, then connect and switch wallets, sign the Transfer Hook binding on chain, and submit the transaction hash to the bind form. Required once per CVA.

  3. 03

    Create a dividend record

    Title, total amount, record date. The per-token amount is auto-computed from the cached total supply and the reward token decimals — you don't need to compute it yourself.

  4. 04

    Approve + Distribute on chain

    The admin wallet approves the distributor to spend the reward tokens, then signs the distribution for that cycle. Approve first, then Distribute, on the Dividends tab. The progress panel re-reads on-chain receipts if needed.

  5. 05

    Investors claim per cycle

    Each cycle moves through receivable, pending, and confirmed. Investors click Claim on their dividends page; the wallet signs the claim for that cycle, and the platform records the claim from the on-chain transaction hash.

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. Unit price defaults to the primary market price; the contract enforces per-redeem min and max.

  1. 01

    Configure redemption terms

    Set the redemption window, the per-wallet min and max, and enable on-chain redemption. The admin signs the on-chain redemption configuration. Unit price inherits the primary market price (the platform uses the same on-chain price unit 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 contract address (the Holders page surfaces it). The Escrow panel shows pending, required, and withdrawable balances in real time.

  4. 04

    Investors redeem on chain

    During the window, an investor signs the redeem transaction for the chosen amount on the CVA contract. The contract burns their tokens and transfers the proportional refund from the escrow pool in one transaction.

  5. 05

    Monitor redemption

    Watch the total supply shrink on the Holders page. The public transactions feed powers each investor's Transactions panel. Admins can withdraw unused escrow by sending it to any address from the Escrow panel.

Phase 03 doneIssuer flow
Role switch
Phase 04 startsInvestor flow

04Investor flow

Investor: from KYC to redemption

No account needed — just a browser with a wallet extension. The full lifecycle is six actions across three on-chain transactions: Approve, Purchase, Claim, Redeem. Every step is verifiable on chain.

Investor journey

  1. Discover

    Open the asset page; read disclosures and risk files.

  2. Apply CVI

    Submit KYC via Cleanverse; wait for the credential to be issued to your wallet.

  3. Subscribe

    Approve + Purchase; two on-chain transactions deliver the CVA to your wallet.

  4. Hold

    Tokens live in your wallet; balance is read live from chain.

  5. Claim

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

  6. Redeem

    At maturity, sign the redeem transaction during the configured window.

Scenario A: Subscribe to a CVA, end to end

Five steps from opening the asset page to receiving the CVA in your wallet. Each step has a visible UI control and a corresponding on-chain or backend call you can verify.

  1. Open the asset page

    Use the asset link the issuer shares with you; confirm the project status is Published. The asset page lists the cover, term sheet links, public disclosures, primary market terms, and the investor subscribe panel.

  2. Connect wallet + switch chain

    Pick the wallet that will receive the CVA (it must match your CVI credential); switch to the project's chain. The UI prompts you automatically when the chain doesn't match.

  3. Check CVI eligibility

    The investor portal calls the eligibility check and shows one of five states. Subscribe stays disabled until the state is 'Eligible'. The result is revalidated on chain when you sign the purchase.

  4. Read terms + enter amount

    Read the prospectus, risk disclosure, and primary market terms. Tick the acknowledgement, then enter the subscription amount (it must fall within the issuer-set min and max; the UI rejects out-of-range values).

  5. Approve + Purchase

    Approve the payment token (stablecoin) for the CVA contract, then confirm Purchase. The UI checks your existing allowance first and skips Approve if it's already enough.

CVI eligibility states (expand)

The eligibility check returns one of five states; the UI maps each to a different reason and CTA. Subscription is enabled only when the state 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

Application submitted; awaiting Cleanverse or issuer review. Refresh later.

Restricted

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

Scenario B, Claim

Scenario B: Claim dividend income, per cycle

Distributions are paid per cycle, proportional to holdings. Investors just click Claim from their portal; the UI lists every cycle for every CVA they hold.

  1. Open the Dividends page

    The 'My dividends' view shows all claimable positions across the CVAs you hold, grouped by CVA. Each card surfaces the next-claimable cycle 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; your wallet signs the claim for that cycle on the dividend distributor. No Approve needed. The platform records the claim from the on-chain transaction hash.

  4. Verify receipt

    The reward stablecoin lands in your wallet; the lifetime-claimed counter updates. If the claim reverts, common causes are wrong chain, insufficient native gas, or an RPC outage. Switch chain and retry.

Scenario C, Redemption

Scenario C: Redeem at maturity

The redemption window is set by the issuer. Redemption price defaults to the primary market price. The contract checks escrow balance up front, so reverts are visible in the UI before you sign.

  1. Open the Redemption card

    On the asset page or under Holdings, find the 'Redemption' panel. It shows the redemption window, price, your max redeemable amount, and live escrow status.

  2. Confirm terms

    Check the window, unit price, and your max redeemable balance. The UI disables Redeem if the window is closed, escrow is empty, or your balance is zero.

  3. Sign redeem

    Enter the amount and confirm the redeem transaction in your wallet. The contract burns your tokens and transfers the proportional refund from escrow in one transaction.

  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 hit most, 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 expects. The investor portal will prompt you automatically; the error message names the expected chain.

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 on chain

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

4

Amount above per-wallet cap

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

5

Redemption escrow empty

An admin must 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 when the asset's registration status isn't 'Issued'. The issuer needs to complete the asset registration on Cleanverse from the Contract tab and wait for the confirmation.

7

Insufficient gas for an on-chain call

Approve, Purchase, Claim, and Redeem each spend gas; keep a small native balance (for example, 0.001 ETH) on the project's chain. Gas is paid regardless of whether the call reverts.

06FAQ

Frequently asked questions

Q.1I see the project but the subscribe button is greyed out.
Check in order: wallet connected and on the right chain; the CVI eligibility card is green; the project is inside the subscription window; on-chain sale is configured; the max supply isn't reached yet. The UI surfaces the first blocker it sees.
Q.2Are Approve and Purchase two separate transactions? Will the gas be high?
Yes. Approve and Purchase are independent on-chain transactions. The system checks your existing allowance first; if it's enough, it skips Approve and only sends Purchase. Both calls are cheap on Base and the BSC testnet (under 0.001 in the chain's native token).
Q.3My dividend claim failed. What now?
Common causes: insufficient gas on the wrong chain, an RPC outage, or the dividend distributor paused by an admin. Switch to the project's chain with a small native balance and retry. If it still fails, the issuer's Dividends page shows the distributor 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 redeem amount. Ask the issuer to top up via Redemption → Escrow pool → Deposit. Reserve 1.5–2× the expected redemption volume.
Q.5I've been whitelisted but still can't subscribe.
Whitelist and CVI are both required — not one or the other. Confirm your wallet also holds a valid CVI. Refresh the page or re-check eligibility; whitelist additions are signed on chain and may take a few seconds to propagate.
Q.6Was gas consumed when my on-chain Purchase or Redeem failed?
Yes. Gas is paid regardless of outcome. If the contract reverts before execution (insufficient balance, not approved, out of window, escrow empty), gas is still sent but CVA state is unchanged. Follow the error hint and retry.
Q.7How do I deploy a Safe multisig instead of the platform's deployer?
Use manual import on the Contract tab. Record the existing CVA address (deployed via Safe) there. The rest of the flow (verify, register, configure sale) works the same. The admin and minter roles must already be granted to your Safe.
Q.8Can I change the primary market terms after publishing?
Yes — the window dates, per-wallet min and max, and whitelist toggle can be edited and re-signed on chain. The max supply and compliance rule JSON are locked after deploy. Closing the sale is reversible until you archive the project.
Q.9What happens to dividends if I transfer my tokens to another wallet?
The Transfer Hook notifies the dividend distributor, so the new wallet is credited with the new wallet's holding at the next snapshot. Cycles that were already credited but not yet claimed travel with the tokens — on-chain claims are always paid to whoever currently holds the tokens.

Ready to start?

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