In Layer 2 Solution of Ethereum (State Channels), what I don't get is what about nonces? If we signed a state channel Tx with 13 nonce and don't put it on the chain for now, then if I make another Tx with nonces 14 (not related to state channel) on the network with a higher nonce, doesn't that transaction stay pending until and unless the state channel Tx with nonce 13 gets chained?

2 Answers 2


A nonce is a sequence number that is contained in a state update, which is a piece of information that is signed by both parties in the state channel. Since it's signed by both parties, the on-chain contract that the highest nonced state update is the most recent one. In a dispute case, both parties would have a chance to submit their highest nonced update, with the higher nonce "winning" and defining the balance to close the channel with.

For an example of how this would work in practice, take a look at Connext's implementation of a bi-directional ETH/ERC20 channel manager:



In ethereum, this is always done through a smart contract. In part because the smart contract is what gives each party the security that the funds exist and will not be moved. Then you do not need to generate a valid transaction on the network but data that allows the smart contract to generate a valid transaction. Under this view you do not need to make the nonce in the state channel to be the same as in the main network.

Assume A and B have been exchanging ether through the payment channel, each transaction from A to B and B to A is signed by both, A can submit at any time his version of the balance of the channel (i.e, A has 3ETH, B has 1ETH) and the smart contract waits for B to submit his version (this is to avoid that one of the parties submit an early version of the balance that is in its favor) if the balances submitted agree then is all good if not the system takes as true the one with the channel-nonce that is higher. Then the contract send the ether that is locked in it to the users involved.

Hope this helps

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.