[AMA] Everything iCKB

Hey all~ I’m the developer of iCKB, I’m so glad to see so many new & old Nervos fans!

I have a long running Discord thread where I usually post updates about iCKB and discuss publicly any related question.

Then again Discord is a closed platform while Nervos Talk is open and it’s gaining more and more popularity :chart_with_upwards_trend:

Also iCKB is getting closer and closer to mainnet deployment!

So here we are, ask me anything you want to know about iCKB!!



Hi Phroi, I didn’t realise you had that thread on the Nervos Discord, I’ll keep an eye on that now.

But anyway, I just wanted to see if you can give us a general update on things are progressing with iCKB and I know timeframes are really hard to give, so I won’t hold you to anything :smile:, but do you have approximate time when you are hoping to have it on mainnet?


Hey @Yeti, nice to see you here!

We are pretty close actually, two weeks ago I deployed a prototype on testnet, while mainnet deployment could be just two / three months away. Bot is at a MVP level, but I still have to polish a bit some inner workings and create its interface. While the iCKB DApp has the components in place to interact with iCKB protocol, but the website itself has still to be designed completely. I have a few interesting ideas on that tho.

A possible delay may come from integrating with CoBuild protocol as just recently it was brought to my attention and I may have to change a few things all around to start supporting it. Then again it’s a step in the right direction to improve Nervos L1 interoperability, so it makes sense to delay a bit for it.

Let me know if you have any other iCKB related question!


Hi Phroi, thanks for the update, great to hear things are coming along well.

1 Like

Congrats on on all the progress that you’ve made. Been following things as best as I can on discord. I think I’ve seen you mention some use cases like ISPOs or even throwing around the idea that maybe ickb could power a chain like Godwoken. What do you see currently as the most impactful use cases. What can we do as a community to help advance any of those ideas forward?


Hey @Digitaldoyle, nice to see you here!! :hugs:

What do you see currently as the most impactful use cases?

Glad you ask!! A few things changed since the inception of iCKB. Let’s get an updated overview:

  • ISPO is a really nice model, but currently Nervos has already a Community Fund. So I’d say the need has already been addressed. Developing an ISPO now may provide different paths & rules for accessing funding.
  • Switching from pCKB to iCKB would give free interests to any CKB holder on Godwoken, then again feels like Godwoken never really found its use case.
  • In the short term the most impactful iCKB result will be that more users will feel comfortable in stacking into NervosDAO by using iCKB. So we’ll see more and more CKB locked into NervosDAO, which is an achievement in itself.
  • In the long term we’ll see more and more decentralized finance protocols integrating iCKB. So users will be able to enjoy the interests payed out by both these protocols and NervosDAO.

What can we do as a community to help advance any of those ideas forward?

Letting your friends know your passion for Nervos, iCKB and future DApps, enjoy the ride together!!


Let’s recap what’s happening in the iCKB world:

  • iCKB was on its merry way to deployment when CyberOrange suggested me to take a look at CoBuild and xUDT :exploding_head::exploding_head::exploding_head:
  • CoBuild will bring Nervos L1 to a new era by introducing metadata to transactions and showing a clear path towards OTX.
  • CoBuild OTX has forced me to re-evaluate iCKB from the contracts up as both iCKB logic and limit orders are not CoBuild OTX ready.
  • As for Limit Order, CoBuild will make witnesses handling more complex for the right reasons.
  • Looking at Omnilock there are ways to piggyback on Admin Mode for adding a custom Domain Logic unlocking for implementing Limit Order. In this direction I opened a Feature Request on Omnilock for P2SH by type Auth.
  • As for iCKB Logic, since I have to modify the contract anyway for making it OTX ready, I’m evaluating to switch from sUDT to xUDT.
  • Switching to xUDT would drop the requirement of a owner lock cell and just depend on owner type cell aka receipt at iCKB minting time. More importantly this would allow to split the receipt logic in two pieces: deposit receipts and withdrawal request receipt.
  • All these changes to the L1 scripts don’t really change much for my typescript code. The real issue is how CoBuild OTX support will affect it, which I’m still evaluating.

I updated the iCKB proposal, switching from sUDT to xUDT: Support xUDT · ickb/proposal@f6ff3de · GitHub


I completed updating the iCKB contracts to be CoBuild OTX ready as described in the updated proposal :tada::tada: :tada:

On-chain CoBuild Action validation is a future step, for now I’ll focus on bringing up to speed the front-end :man_technologist:


TLDR: I updated the L1 LO script to dual ratio orders and fully updated the typescript Utilities for interacting with all iCKB Scripts, so that’s completed! :tada::tada::tada:

While implementing the Limit Order utils, I realized that the transition to the LO final state (Fulfilled) was difficult to enforce and it was causing issues. At the same time I realized that there are use cases where an advanced user may want to specify two different exchange ratio: one for CKB to UDT and one for UDT to CKB. These dual ratio orders can be referred as liquidity provider orders.

Shortly, liquidity provider orders have two practical use cases:

  1. Express the change cells of the bot. This way even when the bot is not active his capital is available for others and so it can gain fees. A win-win situation.
  2. In the future implementation of dCKB Rescuer we’ll likely need a low effort way to provide capital. Liquidity provider orders make this easy.

For the web interface, I chose a stack that seems best for the long term maintainability:

Now I’ll focus on updating the bot, test everything and develop a minimal web interface :muscle:


The new L1 scripts are now deployed on testnet and they can be interacted with using the followings:

In the coming seven days I’ll focus on developing a minimal Web interface :muscle: