Project Overview
Project Name: CellKit Actions
One-Sentence Summary: CellKit Actions is a reusable, private-key-free transaction-action toolkit for CKB apps.
Project Type: Developer Tool
Repositories:
Backend: https://github.com/FidelCoder/cellkitBE
Frontend: https://github.com/FidelCoder/cellkitFE
Vercel Deployments:
Frontend: https://cellkitfe.vercel.app
Backend Health: https://cellkitbe.vercel.app/health
Team Profile & Contact
Applicant: Fidelcoder
GitHub: https://github.com/FidelCoder
Role: Blockchain Engineer
Telegram: @GriffinsOduol
Email: [email protected]
Project Background
Building CKB applications requires developers to repeatedly handle low-level transaction work: cell lookup, capacity calculation, inputs, outputs, cell deps, witnesses, fee estimation, validation, dry-run, and broadcast.
This slows down application development and makes simple product flows harder to ship. A developer building a wallet, payment flow, xUDT interface, Spore/DOB tool, escrow flow, or data-cell app should not need to rebuild the same transaction patterns from scratch every time.
CellKit started from this problem: common CKB transaction patterns should be easier to reuse, inspect, verify, and integrate into application flows.
Solution
CellKit Actions is a reusable transaction-action toolkit for CKB apps.
It provides ready-to-use action flows that generate inspectable CKB transaction payloads for common app operations. The first production workflow focuses on CKB transfer:
build unsigned transaction → sign externally → validate → dry-run → broadcast → return real testnet transaction hash
CellKit does not manage private keys, does not custody funds, and does not hide the transaction structure. It helps developers build faster while keeping the CKB transaction model visible and verifiable.
Technical Approach
CellKit has two parts:
Backend: Rust + Axum API for CKB transaction actions, validation, fee estimation, live-cell lookup, dry-run, and broadcast.
Frontend: Next.js playground for generating transaction payloads, inspecting JSON, copying unsigned transactions, and broadcasting externally signed transactions.
The workflow is:
A developer generates an unsigned CKB transfer transaction.
The developer signs it externally with compatible CKB tooling or wallet software.
The signed transaction is pasted back into CellKit.
CellKit validates the transaction structure.
CellKit runs a CKB RPC dry-run.
If dry-run succeeds, CellKit broadcasts the transaction to CKB testnet.
CellKit returns the real transaction hash and explorer link.
CellKit remains testnet-first during this sprint.
Out of scope:
mainnet support
private key handling
wallet custody
in-browser signing
token swaps
user accounts
speculative or trading features
Funding
Requested funding: $1,000
I have adjusted the request from $1,500 to $1,000 so that it fits within the standard Spark Program budget for a technical developer-tool project.
This sprint is scoped around finalizing and verifying the CKB testnet signed-transaction workflow rather than expanding into additional action types, mainnet support, wallet integrations, or token features.
Milestone 1 — Signed Transaction Validation and Safety Checks
Funding: $350
Output: CellKit can accept signed CKB transaction JSON and reject structurally invalid or unsigned payloads before RPC interaction.
Work included:
Finalize POST /api/transactions/validate-signed
Validate required transaction fields
Check inputs, outputs, outputsData, cell deps, and witnesses
Reject empty or unsigned witness payloads
Return clear validation errors and warnings
Add unit and integration tests for signed transaction validation
Milestone 2 — Testnet Dry-Run and Broadcast API
Funding: $350
Output: CellKit can dry-run and broadcast signed CKB testnet transactions through configured CKB RPC.
Work included:
Finalize POST /api/transactions/dry-run
Finalize POST /api/transactions/broadcast
Run dry-run before broadcast by default
Support explicit dry-run skipping only when requested
Return RPC dry-run result, real tx hash, and explorer URL
Add missing-config and RPC error handling tests
Milestone 3 — Web Flow, Documentation, Demo, and Verification
Funding: $300
Output: CellKit provides a usable browser flow and clear verification path for the committee/community.
Work included:
Finalize /broadcast page
Add signed transaction JSON input
Add validate, dry-run, and broadcast controls
Display validation errors, dry-run cycles, tx hash, and explorer link
Update playground next-step instructions for external signing
Add README verification instructions
Record a short demo showing the full testnet flow
Publish final progress update with repo links, demo link, test output, and sample transaction hash
Timeline and To-Do List
Estimated duration: 4 weeks
Week 1 — Milestone 1
Finalize signed transaction request/response models
Complete signed transaction validation endpoint
Add witness/signature presence checks
Add transaction shape validation for required CKB JSON fields
Add tests for invalid shape, empty witnesses, mismatched outputs, and valid signed payloads
Week 2 — Milestone 2
Complete CKB RPC dry-run integration
Complete CKB RPC broadcast integration
Add dry-run-before-broadcast behavior
Add tx hash and explorer URL response
Add missing RPC config and RPC failure tests
Week 3 — Milestone 3
Finalize /broadcast frontend page
Add signed transaction JSON input and format helper
Add validate, dry-run, and broadcast buttons
Add result panels for errors, cycles, tx hash, and explorer link
Update playground to guide users from unsigned payload generation to external signing and broadcast
Week 4 — Milestone 3
Run backend and frontend checks
Run full CKB testnet verification
Prepare README verification steps
Record demo video
Publish final update with repo links, deployment links, test output, and sample testnet transaction hash
Deliverables
Signed transaction validation endpoint
CKB RPC dry-run endpoint
CKB RPC broadcast endpoint
Testnet explorer link after successful broadcast
Broadcast page for pasting, validating, dry-running, and broadcasting signed transactions
Playground update showing the external signing flow
Tests covering validation, dry-run, broadcast errors, and transaction shape checks
README verification instructions
Public demo showing the full workflow
Final progress update
How to Verify
The final work can be verified by running the following flow on CKB testnet:
Start CellKit locally.
Generate an unsigned CKB transfer transaction.
Sign the transaction externally.
Paste the signed transaction into CellKit.
Validate the signed transaction.
Dry-run the signed transaction.
Broadcast the signed transaction.
Confirm that CellKit returns a real transaction hash.
Open the returned testnet explorer link.
Confirm all tests pass.
Verification commands:
cargo fmt – --check
cargo clippy --all-targets --all-features – -D warnings
cargo test
pnpm lint
pnpm build
Expected output:
Backend formatting passes.
Backend clippy passes with no warnings.
Backend unit and integration tests pass.
Frontend lint passes.
Frontend production build succeeds.
The broadcast flow returns a real CKB testnet transaction hash and explorer link.
Current State vs Funded Work
Current state:
CellKit already has an initial working build.
Completed so far:
reusable action route structure
CKB transfer action route
xUDT transfer action route
cell consolidation action route
capacity lock action route
data cell create action route
action registry
validation helpers
fee estimation helpers
real CKB testnet address parsing
real CKB indexer get_cells integration
ordinary cell filtering
deterministic live-cell selection
two-pass fee estimation
secp256k1 cell dep config loading
unsigned CKB transaction skeleton construction
web playground
action forms
transaction JSON preview
copy flow
API error display
initial signed-transaction broadcast flow on main branches
README and Spark scope documentation
Funded work:
harden and finalize signed transaction validation
harden and finalize dry-run and broadcast workflow
complete public browser-based broadcast flow
complete final tests and verification docs
record demo and publish final progress update
This Spark request is not for an idea from zero. It is to complete and verify the next production step: turning CellKit into a usable CKB testnet transaction-action workflow.
Relationship With Existing CKB Tools
CellKit is complementary to existing CKB developer tools such as CCC. It is not intended to replace low-level CKB SDKs, wallet libraries, or signing tools.
CellKit focuses on reusable, inspectable transaction-action workflows at the application layer. Developers can use it to generate and verify common CKB transaction flows, while still signing externally with compatible wallet/tooling.
The goal is to reduce repeated transaction boilerplate without hiding the Cell Model or taking custody of private keys.
Alignment With CKB
CellKit is aligned with CKB because it directly improves the developer experience around the Cell Model.
CKB applications depend on transaction construction patterns that are powerful but repetitive. CellKit turns common transaction patterns into reusable actions without hiding the underlying structure.
This can help future CKB builders ship faster across:
wallets
payment tools
xUDT apps
Spore/DOB apps
data-cell apps
escrow flows
testnet prototypes
developer tools
The goal is practical ecosystem utility: make it easier to build working CKB apps.
Open Source Commitment
CellKit will remain open source.
License: MIT
Release timing: all funded work will be pushed publicly during the Spark funding period, with the final version available immediately upon completion.
Documentation: English documentation will be delivered with the final work. I will also provide a Chinese summary of the project purpose, usage flow, and verification steps to support Spark Program review and community understanding.