Skip to content

[SC-04] Build tokenization UI — tokenize asset and transfer shares from asset detail #1116

Description

@yusuftomilola

Overview

The tokenization contract (contracts/assetsup/src/tokenization.rs) supports fractional ownership — tokenize an asset, transfer shares, lock/unlock — but has no UI. This flow is the platform's flagship differentiator.

What to Build

On the asset detail page, a Tokenization tab (visible when the asset is on-chain, [SC-02]):

  1. Not tokenized: explainer + "Tokenize this asset" flow (ADMIN + connected wallet [SC-03]): total shares, optional voting threshold → builds the contract call, user signs via Freighter, progress/confirmation states, tx link on success
  2. Tokenized: summary card (total supply, holders count, your balance), token transfer form (recipient address + amount, signed by the holder's wallet), lock/unlock controls where the contract permits
  3. Read paths go through backend read endpoints (via [SC-01]) or direct RPC simulation — pick one and document it; writes are always wallet-signed client-side
  4. Clear error surfaces for contract rejections (not authorized, paused, transfer restrictions from transfer_restrictions.rs)

References

  • Contract: contracts/assetsup/src/tokenization.rs, transfer_restrictions.rs
  • Blocked by [SC-01], [SC-02], [SC-03]

Acceptance Criteria

  • An on-chain asset can be tokenized end-to-end on testnet from the UI
  • Balances and holder info render correctly after tokenization and after a transfer
  • Contract rejections (restricted recipient, over-balance transfer) shown as human-readable errors
  • All writes signed by the user's wallet, never by a backend key

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions