Spark Program | Fiber RGB++ Swap
Tags: Spark-Program
1. Project Overview
Project name: Fiber RGB++ Swap
One-sentence summary: A working, atomic path that takes an RGB++ asset locked on Bitcoin, converts it via RGB++'s existing leap mechanism into a standard CKB asset, and swaps it through a Fiber Network channel for a target CKB asset โ with the conversion and the swap composed so that they succeed or fail together, never leaving funds stranded mid-way.
Project type: Developer tool / protocol extension โ a module built directly on top of Fiber Networkโs existing Cross-Chain Hub (CCH) code.
2. Team Profile
Core member: Carl โ Solo developer, project lead and sole contributor. No collaborators on this application.
Contact: oxdev6 (Oxdev) ยท GitHub
Discord: carlcn6
Email: [email protected]
Telegram: carl6
GitHub: @oxdev6
3. Project Background
Fiberโs Cross-Chain Hub (CCH) module already proves atomic cross-chain swaps work at the protocol level, and itโs worth being precise about what โalready worksโ means here, since the whole case for this project rests on the distinction between whatโs proven and whatโs missing. A hub operator runs both a Fiber node and a Lightning node simultaneously. When a user wants to swap BTC held on Lightning for wrapped BTC on Fiber, the hub locks funds on both sides using the same HTLC payment hash โ meaning either both legs of the swap settle, or neither does, with no custodian ever holding both assets at once and no bridge-style waiting period. This is live, shipped code, not a whitepaper concept.
But it was built to prove the mechanism, not to be general. In an April 2026 GitHub discussion titled โFiber CCH Summary and Future Planโ (nervosnetwork/fiber Discussion #1243), the Fiber core team described its current state without ambiguity: CCH supports exactly one asset pair โ BTC against a single, hard-coded wrapped-BTC type script โ at a fixed 1:1 ratio. There is no negotiation mechanism, no way for a hub operator to add a second asset pair, and no way for a client to discover which hub supports what, since discovery of a second option isnโt possible when only one option can ever exist. In that same discussion, the core team names the fix themselves: hub operators broadcasting signed advertisements describing which assets and rates they support, discoverable by clients before a swap is initiated. This proposal is not asserting a gap the team disputes โ itโs built directly from their own dated, public description of unfinished work.
Hereโs the concrete scenario this creates today: someone holds an RGB++ asset โ a token issued on Bitcoin using RGB++'s isomorphic binding model โ and wants it represented as a native CKB asset, so they can use it inside CKBโs ecosystem of dApps, DeFi, or Fiber-speed payments. Fiberโs own protocol design already lists RGB++ assets as a supported channel asset class, meaning the protocol was built with this use case in mind. But there is currently no way to actually execute that move quickly and non-custodially. The userโs only options today are slower bridge processes or trusting a third party to hold funds during the transfer โ the exact problems Fiber and CCH were built to eliminate for BTC, just not yet extended to this second, increasingly important asset type.
This isnโt a narrow technical curiosity โ it sits at the center of where CKB says itโs heading. RGB++ is the mechanism that lets Bitcoin-native value move onto CKB in the first place; Fiber is the layer meant to make that value usable at Lightning speed once itโs there. Today, those two pieces of the same ecosystem, both built by the same core team, donโt talk to each other. Closing that gap isnโt a side project โ itโs finishing a connection the protocolโs own architecture already anticipated.
Is this project closely tied to RGB++? Yes โ not loosely, at the core. The RGB++ leap (Section 4) is not a workaround bolted onto the project; it is the reason the project exists. Every asset that enters this swap originates as an RGB++ asset locked on Bitcoin, and the entire purpose of the project is to make that specific asset class usable on CKB. Without RGB++, there is nothing to advertise and nothing to swap.
One structural detail is worth stating plainly here, because it shapes the entire design in Section 4: an RGB++ assetโs Bitcoin-bound state is represented by a specific lock script on its CKB cell (the RGB++ lock, tied to a Bitcoin UTXO via a single-use-seal), while a Fiber channelโs funding cell must use the 2-of-2 funding lock derived from both partiesโ pubkeys, since that lock is what makes the channelโs dispute and settlement mechanism work. A CKB cell can only carry one lock script โ so an RGB+ยฑbound asset cannot sit inside a funding cell in its native, Bitcoin-bound form. This isnโt a flaw to design around quietly; itโs why RGB++ already has a โleapโ mechanism โ a one-time, on-chain conversion between the Bitcoin-bound RGB++ lock and a standard CKB UDT cell, and back again. This project uses that existing leap mechanism at the boundary rather than inventing a way around the lock conflict, which is detailed in Section 4.
Prior art, addressed directly: this general shape โ a market where operators advertise terms and clients discover them before committing โ isnโt a new idea; itโs structurally close to Lightningโs own Liquidity Ads, where nodes advertise available channel capacity and rates so peers can discover terms before opening a channel, rather than negotiating out of band. Similar discussions have happened in the RGB Lightning community, but they largely stalled on getting the asset transport primitive itself right โ moving an RGB-class asset through a Lightning-style channel at all. Fiber sidesteps that specific wall: it already carries RGB++ assets as a native channel asset type, so the hard transport problem is already solved at the protocol level. Thatโs what makes the market/discovery layer buildable now, in a way it wasnโt yet for RGB Lightning: this project isnโt solving asset transport, itโs building the discovery and negotiation layer on top of transport that already works.
4. Final Architecture
This section is written to stand on its own โ a reviewer should be able to read only this section and understand what gets built, without needing the implementation detail in Section 5.
At the highest level, the project is three additions sitting on top of Fiberโs existing, proven code, plus a client that chains them into one user action:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Client (CLI + JS) โ
โ Drives the full flow: discover hub โ leap โ swap โ confirm โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Orchestration (extends existing CCH code) โ
โ Chains leap โ swap into one atomic-feeling user action, โ
โ and recovers cleanly if the swap leg fails after the leap โ
โโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Advertisement โ โ Leap module โ โ Swap execution module โ
โ module โ โ โ โ โ
โ New gossip โ โ Wraps RGB++'s own โ โ CCH's existing HTLC โ
โ message type, โ โ leap tx tooling โ โ โ lock-and-reveal, โ
โ broadcast & โ โ does not reimplementโ โ generalized to a second โ
โ discovery โ โ it โ โ asset pair โ
โโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโโโฌโโโโโโโโโโโ โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Chain interfaces โ
โ Bitcoin RPC (reads/spends RGB++ UTXOs) โ
โ CKB RPC + Fiber node RPC (cell queries, tx build/send) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Whatโs new versus whatโs reused, stated plainly:
- Advertisement module โ new. A new gossip message type (
SwapAdvertisement) that lets a hub operator broadcast which asset pair and rate it supports, and lets a client discover that before committing. This is the piece CCH is missing today (Section 3). - Leap module โ not new logic, new integration. Calls RGB++'s already-existing leap transaction construction as the first stage of the flow. This project does not build a new way to move an asset off Bitcoin; it uses the one that already exists and works.
- Swap execution module โ extension, not a rewrite. CCHโs existing HTLC lock-and-reveal state machine, currently hard-coded to one asset pair, is generalized to accept a second. The atomicity guarantee itself is not new โ itโs the same mechanism CCH already proves โ just parametrized over asset type.
- Orchestration โ the actual novel work. Composing two independently-atomic operations (leap, then swap) into one user-facing action that behaves as a single unit, including the recovery path if the leap succeeds but the swap does not.
Node compatibility, stated up front: participating in swap advertisement broadcast, relay, or discovery requires running the extended Fiber node built by this project, because the advertisement is a new gossip message type added to Fiberโs core message set โ not a message an unmodified node can already parse. Unmodified nodes are unaffected and continue operating exactly as they do today; they simply donโt participate in advertisement relay, the same way they donโt participate in CCH swaps today unless theyโre running CCH-aware code. This is not a network-wide upgrade or a hard fork โ itโs opt-in, in the same sense CCH itself is opt-in.
5. Solution
RGB++ asset on Bitcoin
(locked via single-use-seal)
โ
โผ
Leap transaction
(existing RGB++ mechanism)
โ
โผ
Standard CKB UDT
(recoverable if swap fails here)
โ
โผ
Discover hub
(matches a swap advertisement)
โ
โผ
Fiber swap
(generalized CCH HTLC)
โ
โผ
Target CKB asset
Core approach: two additions to CCH, built in a deliberate order so that each piece is independently useful and testable rather than one large opaque build.
The first is an advertisement mechanism โ a way for a hub operator to declare, in a signed and broadcast message, that they support a second asset pair (RGB++ against a CKB asset) and at what rate. This exists because CCH today has no concept of โmore than one pairโ at all; without this piece, thereโs no way for a second asset to exist on CCH in the first place, regardless of whether the swap logic itself works.
The second is the leap-and-swap execution path, named accurately for what it actually does: since an RGB+ยฑbound asset cannot sit inside a Fiber funding cell directly (Section 3 explains why), the asset first leaps โ using RGB++'s existing, already-implemented leap mechanism, not a new one built by this project โ from its Bitcoin-bound RGB++ lock into a standard CKB UDT. That leap is a single on-chain event touching both Bitcoin and CKB once, not something repeated per channel update. Once leaped, the asset is a normal UDT and can enter a Fiber channel like any other channel asset, where itโs then swapped for the target CKB asset using CCHโs existing commit-and-reveal pattern, generalized to this new asset pair. The client built in this project composes both steps โ leap, then swap โ into one user-facing flow, and treats them as a single atomic unit: if the leap succeeds but the swap fails to complete, the client automatically reverses or completes the pending state rather than leaving the user holding an intermediate UDT they didnโt ask for. This composition, not the leap or the swap individually, is the actual novel engineering work here, since both underlying primitives already exist separately.
From the userโs side, this still collapses into a simple flow: someone holding an RGB++ token on Bitcoin runs the swap client, which finds a hub currently offering that target asset pair, initiates the leap-and-swap, and ends up holding the target CKB asset โ without needing to understand that a leap happened underneath, or manually run the leap and the swap as two separate steps themselves. Thereโs no bridge interface to learn, no multi-step manual process, and no point in the flow where a third party is holding funds mid-transition.
What makes this different from โjust another bridgeโ: it isnโt a new bridge, and it doesnโt introduce a new cryptographic primitive that needs to be trusted or audited from scratch. It reuses two things that already exist and already work independently โ CCHโs proven atomic-swap mechanism, and Fiberโs existing support for RGB++ as a channel asset โ and builds the specific connective piece between them that currently doesnโt exist, per the core teamโs own account of their roadmap. The engineering risk here is real but bounded: itโs about correctly generalizing existing, working logic to a second case, not inventing new trust assumptions.
6. Technical Approach
Stack: Rust, extending nervosnetwork/fiberโs existing fiber-lib/src/cch/ module directly rather than building a separate service that wraps it; TypeScript for the accompanying JS client, so the swap can be triggered from a web dApp and not only a terminal.
Architecture, piece by piece (see Section 4 for the plain-language version of this same structure):
Advertisement layer โ a new SwapAdvertisement message type carrying the asset pair being offered, the rate and fee, the operatorโs public key, a signature over the message, and an expiry timestamp so stale offers donโt linger indefinitely. This rides Fiberโs existing peer gossip layer โ the same broadcast/refresh mechanism already used today for node and channel announcements โ rather than introducing a new network transport. Because this is a new message type added to Fiberโs core gossip protocol rather than an already-recognized format, only nodes running the extended Fiber node built by this project can broadcast, relay, or index it. Unmodified Fiber nodes are unaffected and continue operating normally โ they simply donโt participate in advertisement relay, exactly as they donโt participate in CCH swaps today unless running CCH-aware code. This is not a hard fork of network consensus; itโs an opt-in extension, following the same pattern CCH itself already established.
Leap layer โ the RGB++ assetโs transition out of its Bitcoin-bound lock uses RGB++'s existing leap transaction construction (via the existing rgbpp SDK/tooling), not a reimplementation. This projectโs work here is composition, not invention: calling the existing leap flow as the first step of a larger user-facing action, and holding the resulting UDT in an intermediate state the client tracks until the swap leg either completes or is rolled back.
On-chain commitment frequency, addressed directly: itโs worth being explicit that Bitcoin does not see a commitment for every off-chain action here. The leap transaction touches Bitcoin exactly once, at entry (and once more at exit, if a user later leaps the asset back to its Bitcoin-bound form). Once inside the channel, the asset circulates as a standard UDT under Fiberโs own revocable-commitment scheme โ each new channel state revokes the previous one, and only the final state is ever broadcast, at settlement or close, mirroring how Lightning and Fiber already handle channel updates generally. This is the same shape as RGB++'s own โtransaction foldingโ concept: many off-chain transfers, one on-chain commitment, just applied at the leap boundary rather than per transfer. Bitcoin involvement is concentrated at the two boundary crossings, not spread across every update inside the channel.
Swap execution layer โ once the asset exists as a standard UDT, CCHโs existing HTLC lock-and-reveal logic, currently hard-coded to the BTC/wrapped-BTC pair, is generalized to accept this UDT as a second asset type, swapped against the target CKB asset. Because both sides of this particular swap leg are CKB-native at this point (the leap already happened), this leg avoids Bitcoin-Lightning-side finality entirely โ it inherits Fiberโs own channel-state finality, using the same revocable-commitment pattern (each new channel state revokes the previous one) already proven in CCH. The core design goal is minimal surface area: extend the existing state machine to parametrize over asset type rather than writing a second, parallel swap implementation that could drift out of sync with the first.
Client โ a CLI (fiber-rgbpp-swap) that performs the full user-facing flow: query active advertisements, select a hub and pair, trigger the leap, confirm the leap on-chain, initiate the swap, and confirm settlement โ printing transaction references at each stage the user (or a reviewer) can independently check. A minimal JS client wraps the same underlying calls so a web dApp can trigger the identical flow programmatically.
The hardest technical problem, named directly: itโs not cross-chain atomicity in the classic sense โ since the leap resolves Bitcoin-side finality before the swap ever begins, the swap leg itself is CKB/Fiber-native and inherits CCHโs already-proven atomicity guarantees. The actual hard problem is composing two independently-atomic operations (leap, then swap) into one user-facing action thatโs atomic as a pair: if the leap succeeds but the swap subsequently fails or times out, the user must not be left holding a UDT in limbo with no clear path forward. This is addressed by having the client treat the leaped UDT as recoverable at every stage โ if the swap doesnโt complete, the clientโs fallback path simply leaves the user holding the plain UDT they leaped to (a strictly better outcome than the RGB+ยฑbound asset they started with, and never a stuck or lost state), rather than attempting to automatically reverse the leap itself, which would reintroduce the same cross-chain-finality complexity the leap-first design was meant to avoid. This failure path is treated as a first-class deliverable, not an afterthought: Section 7 dedicates explicit build time to it, and Section 9 requires it be demonstrated on video, not just asserted in writing.
Language: all documentation and code comments are in English, satisfying the templateโs minimum-language requirement, though Iโm glad to also produce a Chinese-language summary if that would help committee members who prefer it.
7. To-Do List
Week 1 โ Foundation and risk reduction. Read fiber-lib/src/cch/ and the existing gossip/announcement code in depth before writing new code, so the implementation extends the existing patterns rather than fighting them. Post the projectโs direction in Discussion #1243 specifically to ask whether anyone is already building the advertisement/negotiation piece, closing the โduplicate effortโ risk in week one rather than discovering it in week four. Finalize the exact SwapAdvertisement message schema.
Week 2 โ Advertisement mechanism. Implement SwapAdvertisement signing and verification, and integrate broadcast into Fiberโs existing gossip cycle. Milestone: a hub node running on testnet โ using the extended Fiber node built in this project โ successfully broadcasts an RGB++ asset-pair advertisement, and a separately run listening node, also running the extended build, receives and correctly parses it. This is the first independently checkable proof of progress, and itโs checkable without touching the swap logic at all.
Week 3 โ Leap integration and swap logic. Integrate RGB++'s existing leap transaction construction into the client as the first stage of the flow, and confirm it reliably converts an RGB+ยฑbound asset into a standard UDT on testnet. In parallel, generalize CCHโs HTLC lock-and-reveal state machine to accept that UDT as a second swappable asset type, alongside the existing BTC/wrapped-BTC pair.
Week 4 โ Client integration and first live leap-and-swap. Build the CLI client that chains both stages together: trigger the leap, wait for on-chain confirmation, then initiate the swap. Milestone: the first successful end-to-end testnet run โ an RGB++ asset leaps to a UDT, that UDT swaps for the target CKB asset, and both stages are independently confirmable on-chain. This is the point where the project stops being a design and becomes a demonstrated capability.
Week 5 โ Edge cases and failure handling, treated as real deliverables, not polish. Explicitly build and test: the leap succeeding but the swap subsequently failing or timing out (confirming the client correctly leaves the user holding the recoverable UDT rather than a stuck state), a one-leg timeout inside the swap stage itself with automatic refund, handling of duplicate or expired advertisements, rejection of malformed or unsigned advertisements, and correct behavior when a hubโs advertised rate no longer matches what a client expects at execution time. Build the minimal JS client wrapper in parallel, since it reuses the same calls already proven working in the CLI.
Week 6 โ Documentation, demo, and delivery. Record a demo of a full successful swap and, separately, a demo of the timeout/refund path actually recovering funds rather than leaving them stuck. Write documentation sufficient for another builder to run their own advertising hub โ including the extended node build requirement โ or extend the pattern to a third asset pair. Publish a public write-up back to Discussion #1243, closing the loop with the core team whose roadmap this implements. Milestone: public repo, both demos, and documentation are delivered and independently reviewable.
8. Required Funding & Funding Breakdown
A. Requested amount: $1,000 total โ a single technical-development project, within the Spark Programโs standard cap, so no justification for exceeding $1,000 is needed here.
B. Funding Breakdown, mapped to the same weeks as Section 7, so funding transparently tracks delivered work rather than being requested as a lump sum against a plan:
Weeks 1โ2 โ $300. Covers the protocol study, core-team coordination in Discussion #1243, and implementation of the advertisement mechanism. This is deliberately the lowest-risk, lowest-cost phase โ itโs foundational work with a clear, quickly checkable output (the advertisement broadcast/receive demo).
Weeks 3โ4 โ $400. Covers the most technically demanding phase of the build โ integrating RGB++'s existing leap mechanism, generalizing the HTLC swap logic to accept the resulting UDT, and getting the first live leap-and-swap working end to end โ plus the minor cost of testnet node hosting needed to actually run and demonstrate it. This is the largest allocation because itโs where the real engineering risk and effort concentrate.
Weeks 5โ6 โ $300. Covers dedicated time for edge-case and failure-path testing (deliberately not compressed into the final days, since this is exactly where subtle bugs in cross-chain logic tend to hide), the JS client wrapper, and production of the two recorded demos and documentation.
No portion of this budget covers hardware, marketing, or third-party paid services โ it is development time, plus minimal testnet infrastructure, weighted toward the weeks carrying the highest technical risk rather than split evenly by default.
9. Deliverables + How to Verify
This section is structured so every deliverable can be checked by a reviewer without reading a single line of Rust or TypeScript โ a deliberate response to the committeeโs earlier feedback that verification shouldnโt depend on code review, which the committee has limited capacity for.
Deliverable 1 โ Advertisement mechanism (end of Week 2) Whatโs delivered: An open-source commit to the project repository containing the SwapAdvertisement implementation and gossip broadcast integration, accompanied by a short log or screenshot showing a testnet hubโs advertisement being received by a separately run listening node. How to verify: The reviewer runs a single provided listener command, using the extended node build provided in the repo, against the testnet hubโs public node address. Expected output: the advertised asset pair and rate printed to the console within a few seconds โ no code reading required to confirm this worked. Environment needed: a synced CKB/Fiber testnet node running the extended build (setup steps provided step-by-step in the repo README). Estimated verification time: under 10 minutes.
Deliverable 2 โ Working leap-and-swap (end of Week 4) Whatโs delivered: A recorded demo of a complete leap-and-swap, plus three on-chain transaction references โ the leap transaction (showing the RGB+ยฑbound asset converting to a standard UDT, touching both Bitcoin and CKB), and the two sides of the subsequent Fiber swap โ along with the repo commit implementing the client and generalized HTLC logic. How to verify: The reviewer opens all three provided transaction references in a public block explorer and confirms, in order, that the asset left its RGB+ยฑbound form, then moved from the resulting UDT to the target CKB asset. No code execution or code review needed. Environment needed: none beyond a web browser. Estimated verification time: under 5 minutes.
Deliverable 3 โ Edge-case and security handling (end of Week 5) Whatโs delivered: Two recorded demos of failure paths โ (a) the swap stage failing or timing out after the leap has already completed, showing the client leaving the user holding the recoverable UDT rather than a stuck state, and (b) a one-leg timeout within the swap stage itself with automatic refund โ plus a short written test report listing every edge case exercised (leap-succeeds-swap-fails, swap-stage timeout/refund, malformed advertisement, expired advertisement, rate mismatch at execution time) and the observed outcome for each. How to verify: The reviewer watches both recorded demos and reads the one-page test report. No environment setup, code execution, or code review needed. Estimated verification time: under 10 minutes.
Deliverable 4 โ Documentation and public write-up (end of Week 6) Whatโs delivered: README and setup documentation detailed enough for another builder to run their own advertising hub โ including the extended node build it requires โ or extend the swap to a third asset pair without asking me questions first, plus a public write-up posted back to Discussion #1243 summarizing what was built against the specific gap the core team originally documented. How to verify: The reviewer reads the README and confirms it contains concrete, followable setup steps rather than only prose description, and reads the linked forum write-up. Estimated verification time: under 10 minutes.
Across all four deliverables, verification never requires reading the underlying implementation โ it relies on transaction hashes checkable in a public explorer, a single runnable command with predictable output, and recorded video evidence, which keeps the committeeโs review cost low regardless of reviewer technical background.
10. Current State vs. Funded Work
Current state, stated plainly so thereโs no overlap with what follows: the gap this project addresses has been researched and documented, grounded in the core teamโs own dated discussion identifying it. No implementation code has been written. No project repository exists yet. Nothing beyond research and this proposal currently exists.
Funded scope, i.e., the delta this grant actually pays for: everything from designing and implementing the SwapAdvertisement message through a fully working, edge-case-tested, documented atomic RGB+ยฑto-CKB-asset swap running on testnet, exactly as detailed week-by-week in Section 7 and deliverable-by-deliverable in Section 9.
Explicitly out of scope for this grant, so expectations are clear going in: mainnet deployment, formal third-party security auditing, and support for asset pairs beyond the single initial RGB++/CKB-asset pair. These are natural next steps once the core pattern is proven โ the kind of scope a follow-on Community Fund DAO application would cover โ but including them here would make this project too large to realistically finish inside a $1,000, six-week Spark grant, which is itself part of why this scope was chosen.
11. CKB Alignment
This project doesnโt use CKB as a generic settlement target that happens to be convenient โ its entire value proposition only exists because of three CKB-specific technical features working together. Fiber Networkโs channel and gossip architecture provides the instant, off-chain settlement layer. RGB++'s isomorphic binding model is what makes a Bitcoin-native asset representable and provably tied to a CKB-side state in the first place. And CCHโs existing HTLC-based swap mechanism, built specifically for CKB/Fiber, is the proven pattern this project generalizes rather than replaces.
Concretely, if any one of these three pieces didnโt exist in its current CKB-specific form, this project wouldnโt be buildable in its current shape: without Fiberโs gossip layer, thereโd be no existing broadcast mechanism to extend for advertisements; without RGB++'s binding model, thereโd be no well-defined way to represent the Bitcoin-side asset at all; without CCHโs existing atomic-swap logic, this project would need to design cross-chain HTLC coordination from first principles instead of generalizing something already proven. The project is implemented as a direct extension of nervosnetwork/fiberโs own codebase, not an external service that merely calls into CKB โ meaning its success is inseparable from CKBโs specific architecture, not portable to a generic EVM chain with minor changes.
