A market board for Fiber swaps: hubs advertise, wallets discover

Bitcoin assets have been arriving on CKB for a while now. RGB++ gives them

a way in, and Fiber gives them speed once they’re here. But something basic

was missing in between: if you hold one of these assets and want to swap

it, how do you find out who’ll take it, and at what rate? There was no

answer that didn’t involve asking around.

So I built the answer: a gossip-native market for Fiber swaps. Hubs

broadcast signed, expiring rate offers over the same gossip the network

already uses for routing info. Any wallet can list the offers and take the

best one. No negotiation, no middleman, no new network to run, three RPC

calls (`publish`, `list`, `best-rate`), a CLI group, and a one-file web

board that shows both sides converging.

See it working (60 seconds, two live testnet nodes — publish on the left,

watch it appear on the right):

And try it yourself — everything is open:

- Market board + docs + one-command local setup: GitHub - oxdev6/fiber-rgbpp-swap: Fiber RGB++ Swap · GitHub

- Fiber fork with the gossip integration: GitHub - oxdev6/fiber: Fiber fork with SwapAdvertisement for RGB++ (feat/swap-advertisement) · GitHub

(branch feat/swap-advertisement)

What’s next is the part the grant deliberately left out: connecting the

board to the actual swap — leaping the RGB++ asset into a standard UDT via

existing tooling, then settling through CCH’s lock-and-reveal generalized

to the new pair. The design notes from this build are the first draft of

that proposal. Longer term, the format was never about one token: any third

pair should be able to list itself the same way.

Two things this build taught me, for fellow builders: first, storing data

and telling the network are two different acts — my first version saved

offers locally and peers found them minutes later, if ever; pushing into

the gossip actor fixed it in one move. Second, expiry is a feature — stale

quotes rotting away on their own is what keeps a leaderless board honest

without moderators.

Questions, criticism, testnet assets to try all welcome here or on

Discord (carlcn6).