Spark Program | CellMint, No-Code Token Creation & Management Platform for Nervos CKB

1. Project Overview

  • Project Name: CellMint

  • One-Sentence Summary: A no-code token launchpad that lets anyone create, deploy, and manage xUDT fungible tokens on Nervos CKB through an intuitive wizard interface zero programming required.

  • Project Type: DApp (Web Application)

    2. Team Profile

    • Core Member:

      • devokindah β€” Full-Stack Developer & Project Lead
    • Background:

      • Building full-stack applications
    • Contact Information:

      • Discord: (@mowseniamowsenia)

      • Te@mowseniaegram: @m@mowseniawsenia

      • X: ( @mowsenia)

      • Email : ([email protected])

      3. Problem & Ecosystem Relevance

    Creating and managing xUDT tokens on Nervos CKB is still difficult for non-technical users. The ecosystem already has a CCC App xUDT issuance tool, including the Single-Use-Seal flow
    here:

    CCC App

    CellMint does not claim to be the first xUDT issuer in the ecosystem. Instead, CellMint aims to productize this capability into a complete no-code token launchpad and management
    platform.

    The existing CCC App flow is valuable as a developer-facing tool and reference implementation. However, users still need to understand concepts such as xUDT, SUS, Type ID, metadata
    cells, multiple signing steps, cell capacity, and transaction state. CellMint will abstract those details into a guided product experience for community teams, hackathon builders,
    and non-technical founders.

4. Solution & Differentiation

CellMint provides a no-code token launchpad with a guided 3-step wizard:

  1. Identity: token name, symbol, logo URI/hash, description, and social links
  2. Economics: supply, decimals, owner address, and minting model
  3. Review & Deploy: token preview, validation checklist, fee/capacity checks, deployment progress, tx hash, and explorer link

Compared with the existing CCC App xUDT issuer, CellMint differs in scope and user experience:

Existing CCC xUDT Tool CellMint
Primarily a developer-oriented utility Productized no-code platform for founders, communities, and educators
Supports xUDT issuance Guided token creation wizard with step-by-step workflow
Requires familiarity with CKB concepts and transaction flow Abstracts technical complexity behind an intuitive UI
Focuses on asset issuance Supports the full token lifecycle: creation, management, and monitoring
Basic issuance interface Rich token profile with name, symbol, logo, description, and metadata
Limited post-deployment experience Token dashboard with balances, supply, transaction history, and management tools
Minimal user guidance Built-in explanations, validation, and deployment progress feedback
Designed primarily for developers Designed to onboard non-technical users into the CKB ecosystem

CellMint will build on CCC’s proven issuance patterns, not replace them. The goal is to make those patterns accessible to non-developers.

5. Technical Approach Update

CellMint will create an on-chain metadata cell during deployment, using the existing CCC pattern of creating a UniqueType metadata cell alongside the xUDT issuance flow. For MVP, the
metadata cell will store a versioned metadata payload containing:

  • name
  • symbol
  • decimals
  • description
  • logo URI
  • logo content hash
  • social links
  • creator address
  • xUDT type script hash
  • creation transaction hash

Large media such as logos may be stored off-chain by URI/IPFS/HTTPS, but the URI and content hash will be anchored in the on-chain metadata cell. This keeps the token record
persistent and independently verifiable while avoiding unnecessary CKB storage cost.

LocalStorage will only be used as a temporary UI cache for faster loading. If the browser cache is cleared, CellMint will reconstruct token records by querying CKB cells and reading
the on-chain metadata.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CellMint Web App
β”‚
β”‚ β€’ Landing Page
β”‚ β€’ Dashboard
β”‚ β€’ Create Token Wizard
β”‚ β€’ Token Management
β”‚ β€’ Token Details
β”‚ β€’ Transfer Tokens
β”‚ β€’ Activity History
└──────────────────────────────┬─────────────────────────────
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CellMint Application Layer
β”‚
β”‚ β€’ Form validation
β”‚ β€’ Token configuration
β”‚ β€’ Metadata generation
β”‚ β€’ Transaction preparation
β”‚ β€’ Capacity & fee estimation
β”‚ β€’ Deployment progress tracking
β”‚ β€’ Transaction status monitoring
β”‚ β€’ Error handling & recovery
└──────────────────────────────┬─────────────────────────────
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Existing CKB Ecosystem SDKs & Libraries
β”‚
β”‚ β€’ CCC SDK / CCC Connector
β”‚ β€’ CKB Indexer
└──────────────────────────────┬─────────────────────────────
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Wallet Integration
β”‚
β”‚ β€’ JoyID
β”‚ β€’ MetaMask (where supported)
β”‚ β€’ Other CCC-compatible wallets
└──────────────────────────────┬─────────────────────────────
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Nervos CKB Network
β”‚
β”‚ β€’ xUDT Assets
β”‚ β€’ Unique Type Cells
β”‚ β€’ Metadata Cells
β”‚ β€’ Transaction Pool
β”‚ β€’ CKB Indexer
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Technical Challenges:

  1. Transaction Construction: xUDT token creation requires precise encoding β€” 16-byte LE u128 for amounts, correct type script args (lock hash + "00000000"), and proper cell_deps. Solution: Wrap CCC SDK methods into a clean service layer that handles all encoding automatically.

  2. Wallet Interoperability: Different wallets have different connection protocols. Solution: CCC connector-react provides a unified signer abstraction β€” we use ccc.useSigner() and it works across JoyID, OKX, MetaMask etc.

6.To-Do List

Week 1: CCC SDK integration

  • Wallet connetion with CCC provider and signer
  • Install and configure @ckb-ccc and @ckb-ccc/connector-react
  • Test JoyID and other CCC-supported wallets on CKB Testnet
  • Add CKB balance, capacity, and fee preflight UI

Week 2: xUDT Deployment + On-Chain Metadata

  • Implement xUDT issuance using CCC patterns
  • Support Single-Use-Seal issuance first
  • Create on-chain UniqueType metadata cell during deployment
  • Store name, symbol, decimals, description, logo URI/hash, and social links on-chain
  • Add tx polling and recovery states

Week 3: Token Dashboard & Management

  • Query deployed tokens from CKB/indexer
  • Read metadata from on-chain metadata cells
  • Token detail page with type script, supply, owner, tx hash, and explorer links
  • Transfer xUDT tokens between addresses
  • Add optional Type ID-controlled minting path if time allows

Week 4: Testing, Polish & Documentation

  • End-to-end Testnet testing with real wallets
  • Error handling for insufficient capacity, rejected signatures, and failed transactions
  • Responsive UI polish
  • README, setup guide, architecture notes
  • Public demo deployment

7. Required Funding & Funding Breakdown

A. Required Funding: $900

B. Funding Breakdown:

Week Category Amount Purpose
1 Technical $250 CCC SDK integration, wallet connection, project scaffolding
2 Technical $250 xUDT deployment logic, transaction construction, signing flow
3 Technical $200 Token management, dashboard, transfer/mint features
4 Technical and Community $200 Testing, documentation, demo preparation
Total $900

Justification: This is a single-category technical project focused on frontend DApp development with CCC SDK integration. The $900 budget covers 4 weeks of focused development, testing infrastructure, and documentation. The scope is well-defined,a web-based token creation wizard, with a clear tech stack and established SDK, keeping costs manageable.

8. Updated Deliverables

Deliverable Acceptance Criteria
Deployed web app Public URL with working wizard and dashboard
Wallet integration Connect/disconnect through CCC-supported wallets
xUDT deployment User can create an xUDT on CKB Testnet
On-chain metadata Token metadata is stored in a CKB metadata cell, not only browser storage
Token dashboard Dashboard reads token records from chain/indexer data
Token detail page Shows metadata, type script hash, tx hash, owner, and explorer links
Token transfer User can transfer xUDT to another address
Documentation README explains setup, architecture, metadata model, and verification steps

B. How to Verify:

Deliverable Verification Steps Expected Output Environment
Web App Visit the live URL Landing page loads, all routes navigable Any browser
Token Deployment Connect wallet β†’ Create Token β†’ fill form β†’ Deploy Tx hash displayed, token appears on CKB Testnet Explorer with correct type script Browser and Testnet wallet with CKB
Wallet Connect Click β€œConnect Wallet” β†’ select JoyID/OKX Wallet popup appears, address shown in UI Browser with wallet extension
Token List Navigate to /dashboard/tokens Mock and newly created tokens displayed with status badges Browser
Transfer Go to token detail β†’ manage β†’ transfer Tx confirmed on explorer, recipient balance updated Browser + two wallets
Repository Clone repo β†’ npm install && npm run build Build succeeds with no errors Node.js 18+
Documentation Read README Clear setup steps, architecture diagram Any

Non-Code-Review Verification: All deliverables can be verified by visiting the deployed URL, connecting a wallet, performing token operations, and checking transaction hashes on the CKB Testnet Explorer, no code review required.

9. Updated Current State vs Funded Work

Current State

  • UI shell, landing page, dashboard, and wizard are built
  • Mock wallet connection and mock deployment are implemented
  • Zustand persistence exists for prototype state
  • Form validation and animations are implemented
  • Routes build successfully

Funded Work

  • Replace mock wallet with CCC signer integration
  • Implement real xUDT deployment
  • Add on-chain metadata cell creation
  • Remove LocalStorage as source of truth
  • Query deployed tokens from CKB/indexer
  • Add token transfer
  • Add balance, fee, and capacity checks
  • Test full flow on CKB Testnet
  • Publish documentation and live demo

10. CKB Alignment

Connection Points:

  1. xUDT Token Standard: CellMint directly implements xUDT token creation, the fungible token standard on CKB. The core deployment flow constructs xUDT type scripts using the creator’s Lock Script hash as the token identity.

  2. Cell Model: All token operations work with CKB’s UTXO-based cell model. Token amounts are encoded as 16-byte LE u128 in cell data. Deployment creates new cells with xUDT type scripts.

  3. CCC SDK Integration: Uses @ckb-ccc/connector-react for wallet connection and @ckb-ccc/core for transaction construction, aligning with the official CKB TypeScript SDK ecosystem.

  4. Multi-Wallet Support: Leverages CCC’s unified wallet interface to support JoyID, OKX, MetaMask, and other wallets, promoting CKB’s wallet ecosystem.

  5. CKB Testnet: All development and testing targets CKB Testnet, encouraging developers to experiment risk-free before deploying to mainnet.

Honest Declaration: CellMint is fundamentally a CKB-native DApp. It cannot exist on any other blockchain, the xUDT standard, cell model, type scripts, and CCC SDK are all CKB-specific. The entire value proposition is making CKB’s token creation accessible to non-developers.

4 Likes

Hi @Kashlynne_Mumbe ,

Thank you for your enthusiastic participation in the Spark Program! I have reviewed the updated proposal and responses, and have set the proposal status to β€œSubmitted.”

As soon as the committee issues its official review opinion, I will respond to you here as soon as possible.

Best,
xingtian

2 Likes

Hi @Kashlynne_Mumbe,

After review by the Spark Program committee, your proposal has been assigned a status of Pending. This is not a rejection, but an invitation to revise and provide further clarity on several key points.

The committee recognizes the value of a no-code token creation tool for the Nervos CKB ecosystem and appreciates your efforts. However, we have identified the following areas that require clarification and improvement before we can move forward.

Main Revision Recommendations:

  1. Clarify Differentiation from Existing Tools:
    Your proposal states that CKB lacks an accessible token creation interface. However, the committee would like to point out that a similar no-code xUDT minting tool already exists within the ecosystem. Please review this example: https://app.ckbccc.com/connected/IssueXUdtSus. In your revised proposal, please clearly explain how CellMint differs from or improves upon this existing solution. What specific features, user experience improvements, or technical advantages does your platform offer?

  2. Token Data Storage & Decentralization:
    Your current proposal indicates that token data (such as name, symbol, logo, and description) is stored in the browser’s LocalStorage. The committee has concerns regarding the security, persistence, and decentralization of this approach. We strongly recommend migrating this metadata storage on-chain.

Please revise and resubmit your proposal based on the feedback above. We will arrange a new round of review as soon as possible.

Looking forward to your reply.

Best,
xingtian
On behalf of the Spark Program Committee

1 Like

Hi @xingtianchunyan

Thank you to the committee for the detailed feedback and thoughtful review. I’ve updated the proposal to address the points raised by clearly differentiating CellMint from the existing CCC xUDT issuance tool and revising the architecture to use on-chain metadata storage instead of LocalStorage. I appreciate the guidance and have resubmitted the updated proposal for your review.

Looking forward to your feedback. Thank you!

1 Like

Hi @Kashlynne_Mumbe! Given that a core part of this project involves optimising the UI/UX of the existing xUDT distribution tool, and the proposal mentions that you have already completed a portion of the work, could you share the existing product URL/video to allow for a better understanding of the deliverables?

2 Likes

Hi! Thanks for the question.

Yes , the current prototype is live here:
https://cell-mint.vercel.app/

This is the existing frontend/product prototype that represents the portion already completed. It includes:

  • landing page and overall product UX
  • dashboard shell
  • create-token wizard flow
  • token detail and management screens
  • validation, navigation, and prototype state flow
1 Like

Hi @Kashlynne_Mumbe,

Thank you for taking the time to revise the proposal based on our earlier feedback. The committee has completed its review and, after careful discussion, regrets to reject the CellMint proposal at this time.

We want to be transparent about the reasoning behind this decision:

  1. UI/UX Design Needs Improvement:
    While the idea of a no-code token launchpad is appreciated, the current user interface is not sufficiently polished or intuitive. The committee noted that the UI is not good enough to provide a seamless experience for non-technical users, which is the core value proposition of the project.

  2. Lack of Functional Breakthrough:
    Compared to the existing CCC App xUDT issuance tool, CellMint does not introduce significant functional innovations. The proposal primarily repackages existing capabilities into a wizard interface without addressing deeper technical challenges or providing new ecosystem value. The committee considers that the project has not achieved a functional breakthrough.

  3. Unclear Differentiation and Impact:
    The proposal does not clearly demonstrate how CellMint will attract and retain users beyond the existing tools. The ecosystem already has a functional issuance tool, and CellMint’s added value appears marginal. The committee is concerned about the project’s sustainability and overall impact on the developer experience.

We appreciate the work your team has put into exploring no-code token creation on Nervos CKB. Keep building, and feel free to reach out anytime!

Best,
xingtian
On behalf of the Spark Program Committee