Wallet boilerplate to start from when focused on nitro

Hi all,
after the papers, I worked through the Nitro protocol documentation and tutorials, all the way from the contracts up to the dApp part.

I now wonder if there is some wallet boilerplate stuff to be used, when focused on nitro based usecases.
I see some progess in wallet-core and wallet-protocols, however I’m not sure if this is more focused on dApp & force move or if it is fully aligned with the nitro mindset.
The package folder wallet is empty.
Also I could not find much docu.

So where to start from?


The nitro docu tutorial states

The linked examples (rps, tic tac toe) conform to a legacy ForceMoveApp interface.
What exactly is the difference?


Ok so easy question first:

The linked examples (rps, tic tac toe) conform to a legacy ForceMoveApp interface.
What exactly is the difference?

The difference is in the function signature for validSignature. If you look at the Tic Tac Toe example, it accepts (bytes _old, bytes _new) . We don’t use this anymore (instead you should have ( VariablePart memory a, VariablePart memory b, uint256 turnNumB, uint256 nParticipants )

I just realised that we actually migrated the Rock Paper Scissors contract so that does in fact conform to the latest interface. I will update the docs.

As for your other questions, I’ll try and clear a few things up. The wallet package was deleted from our monorepo – it was deprecated in favour of the xstate-wallet package. The parts of this package that can run in the browser and on the server are being factored out into wallet-core – but it’s early days in that process. All of this code is targeting the full-fat, nitro mindset.

To help you figure out where to start, it would be useful to know a bit more about what your aims are? For example, if by “focused on nitro based usecases” you mean that you’d like to build a Dapp that runs on nitro, the fastest way to achieve that is to install the xstate-wallet in an iframe on your page. I am planning on pushing out the relevant documentation on that in the coming days/weeks (we will aim to make it as easy as possible, using the channel-client and channel-provider packages you may have spotted).


Hi george,
thanks for your immediate answer; and great work with the docu and tutorials (which ave been authored by you as far as I have seen)!

Great news about rps, I will have a look at it.

Regarding the wallet:
So there’s the xstate-wallet, with basics factored out to wallet-core. How about wallet-protocols?
I will also have a look at channel-provider and -client, now that I know that all this is related to the full nitro mindset!
To motivate you a bit: some further docu would be highly appreciated :slight_smile:

Regarding my aims: I’m currently thinking about the underlying mechanics for a Hub based situation, with the hub connecting service providers with consumers…


Hi Alex,

I am currently working on a new version of the docs that is more “zoomed-out” from nitro-protocol, and covers some more of our packages.

You can get a preview here https://protocol.statechannels.org/docs/next/overview . Hopefully it should give you an idea about the channel-client, channel-provider, and which pieces you think you might need.

So far there’s not a lot about hubs.

Needless to say, please feel free to ping me with anything that’s not clear / missing and I’ll make improvements!


Ok, looks great, thanks!