testnetLaunch app

Crowdfunding · Nervos CKB · all-or-nothing

Your funds live in a cell that only the outcome can unlock.

CrowdCell is a launchpad for CKB projects where the chain, not a company, decides what happens to every pledge. Goal met by the deadline: funds release to the creator. Goal missed: every backer is refunded. No custody in between.

Custody
None
Settlement
On-chain
Fail-safe
~180 days
Network
Testnet
CKB Light Client for iOSexample campaign
Pledged
49,440
Goal
120,000
Deadline
#22,900,000
pledged CKBgoal boundaryremaining

How it works

One campaign cell. Many pledge cells. Two exits.

CKB stores state in cells. CrowdCell uses that literally: a campaign is a cell, each pledge is a cell, and the scripts guarding them allow only the settlement paths below.

Settlement paths

Where a pledge cell can go after the deadline, and nowhere else.

verified on-chain against total pledged · triggerable by anyone · run automatically by the finalization bot

1. Create

A creator publishes a campaign cell with a funding goal in CKB and a deadline block. Neither can be changed once it is on-chain.

campaign cell · goal, deadline, running total

2. Pledge

A backer locks CKB into a pledge cell, and the campaign's on-chain total goes up in the same transaction. A receipt cell lands in the backer's wallet as proof.

pledge cell · receipt cell · costs shown before you sign

3. Settle

After the deadline the campaign is finalized against its on-chain total, then every pledge is released or refunded. The finalization bot does this automatically, and anyone else can too.

Trust model

Who can do what, and who can't

"Trustless" is a specific claim. Here is exactly what each party is allowed to do, as enforced by the scripts. They are referenced by code hash, so nobody can swap them out, including us.

ActionCreatorBackerAnyone / botEnforced by
Pledge to a campaignbefore the deadline, 100 CKB minimumyesyesyes, as a backercampaign + pledge type scripts
Finalize as Funded or Unsuccessfulafter the deadline, must match total pledged vs goalyes, if it verifiesyes, if it verifiesyes, if it verifiescampaign type script
Release funds to the creatoronly once finalized as Fundedyesyesyespledge lock script
Refund a backeronly once finalized as Unsuccessfulyesyesyespledge lock script
Send funds anywhere elsenononopledge lock script
Return an unsettled pledge to its backerfail-safe, ~180 days after the deadlineyesyesyespledge lock script
Reclaim a receipt's depositonce the campaign is finalizednoyes, their ownnoreceipt type script

Open source

The contracts, the indexer, the finalization bot and this site are all public.

GitHub

Rules that can't change

Campaigns reference the scripts by the hash of their code, so nobody can upgrade them under a live campaign.

Contracts

Everything is inspectable

Every campaign, pledge and receipt is a cell you can look up on the CKB explorer.

Explorer

For creators

Launch a CKB project with terms the chain enforces.

Set the goal, set the deadline, publish. Backers can see there is no way for you, or us, to touch their CKB unless the goal is met. That is a better pitch than any promise.

  • All-or-nothing, verified on-chain
  • Automatic release and refund via the finalization bot
  • A receipt cell for every pledge, and a ~180-day fail-safe
  • Backers connect with JoyID or any CCC-supported wallet

Roadmap

Where CrowdCell is going

  1. Live on testnet

    Trustless crowdfunding

    • All-or-nothing campaigns settled on-chain
    • Automatic finalization, release and refund
    • Receipts and the ~180-day fail-safe
  2. Next

    Dashboards

    • A creator dashboard for your campaigns
    • A backer dashboard for your pledges and deposits
  3. Later

    Mainnet

    • An independent security audit
    • Launch on CKB mainnet
  4. Planned

    Bitcoin backers

    • Pledge from a Bitcoin wallet through RGB++

FAQ

Questions backers ask

What happens if a campaign misses its goal?

After the deadline it is finalized as Unsuccessful, and every pledge is refunded to the backer who made it. The finalization bot sends the refunds automatically, and anyone can also trigger them from the campaign page.

Who holds the funds while a campaign runs?

Nobody. Each pledge sits in its own cell, locked by a script that only lets it go to the creator once the campaign is finalized as Funded, or back to the backer once it is finalized as Unsuccessful or the fail-safe opens. There is no admin key.

What does pledging cost?

The minimum pledge is 100 CKB. On CKB every cell holds enough CKB to pay for its own storage, so a pledge also locks two deposits that come back to you: about 252 CKB for the pledge cell, returned when the pledge is released or refunded, and about 262 CKB for the receipt, which you reclaim once the campaign is finalized. The network fee is under 0.01 CKB and there is no platform fee. The exact breakdown is shown before you sign.

What if the finalization bot stops running?

Nothing gets stuck. Anyone can finalize a campaign and release or refund its pledges from the campaign page. And if a pledge is still unsettled about 180 days after the deadline, anyone can send it back to its backer without the campaign at all.

Can a creator change the goal or the deadline?

No. Both are fixed when the campaign is created, and the campaign script rejects any transaction that changes them.

Which wallets can I use, and is this real CKB?

JoyID, or any other wallet the CCC connector supports. CrowdCell currently runs on the CKB testnet, so it uses test CKB, which you can get for free from the Nervos faucet.