Is there documentation on moving tickets off of the transaction smart rollup (tx-kernel)? Specifically, move tickets from an address on the tx-rollup to an implicit address on layer one. I imaging the rollup-client is used to create an outbox message. This message is then passed to an L1 contract?

1 Answer 1


It's not possible to withdraw a ticket from L2 directly to an implicit account on L1 IIRC.You have to go through a smart contract to do so.

Re withdrawing off the tx kernel, it's completely possible - but I don't think the support is there in the tx-client.

TLDR: the kernel responds to an inbox message, and writes a new message to the outbox. The message is indexed by a 'level' and an index in the level.Using the rollup client, you can request a proof that a certain message exists at a given outbox level/index. Once the level is cemented, you can then submit the request to L1, which is then executed.This means, for example, that the contract address that the outbox message will get sent to, is actually set in the oubox message itself.

This is the steps flow here:

  1. The tx-client encodes a message which tells the rollup to send some tickets to a L1 contract address.
  2. The octez-client sends that message to the global SR inbox.
  3. The rollup returns and outbox message and we wait for that commit to cement.
  4. Once cemented, the rollup-client will get the proof and commitment hash.
  5. The octez-client will execute the outbox message which sends ticket to the smart contract.

There is an example "receiving" contract. Like in the mint_and_deposit_to_rollup.tz example in the tx-client repo, here: https://gitlab.com/tezos/tezos/-/blob/master/michelson_test_scripts/mini_scenarios/smart_rollup_receive_tickets_016.tz

Your Answer

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