I never got the sandbox parts to work but I was able to create my own Tezos chain. I downloaded the source code, then changed the dictators public key to a key that I controlled. Then, after compiling and running the node, I could inject the protocol with my dictator's secret key:

tezos-client activate protocol Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P with fitness 24 and key dictator and parameters ../mysandbox.json

After that I could do whatever I wanted with the bootstrap accounts I had in my JSON, bake, transfer, make new accounts, etc.

But now I can no longer bake. The protocol injection succeeds:

Injected BKn6EQc4ndGw

But tezos-client doesnt have the bake option anymore when I'm doing all this from scratch now.

  • Does tezos-client list understood protocols list the protocol you just activated?
    – Seb Mondet
    Commented Feb 12, 2019 at 20:47
  • before I inject on top of the genesis block that command shows: Ps9mPmXaRzmz PsddFKi32cMJ PsYLVpVvgbLh PtCJ7pwoxe8J and after I inject I get Injected BMVZ56p8Z3v4 then running that list understood protocols again I get those same 4 protocols
    – Bo Byrd
    Commented Feb 12, 2019 at 22:01
  • When I want to activate the protocol it gives me an error saying : Fatal error: "Assert_failure src/lib_client_base/client_keys.ml:237:6" Dibyos-MacBook-Air:tezos heisenberg$ tezos-client list understood protocols Commented Feb 4, 2020 at 13:37

3 Answers 3


Disclaimer - i'm the author of the project below

I've put together a toolkit that allows you to run a locally sandboxed tezos chain for development, together with liquidity & tzscan preinstalled.

You can check it out here.

If you have any questions, or the readme isn't clear, i'd be happy to clarify any details!.


Which protocol is indicated in:

tezos-client -A <your-node> rpc get /chains/main/blocks/head/header

It is likely that it switched to protocol 002 (instead of 003), and that your client does not include the bake command for 002. It is hardcoded in the sources (since there were no votes at the time) that, after a given number of blocks, the node should switch to protocol 002 and then later to protocol 003.

  • 1
    At OCamlPro, we maintain our own branch of Tezos for the private networks that we deploy for our customers. We had to do many changes to make it work on the long time.
    – lefessan
    Commented Feb 13, 2019 at 9:54
  • 1
    Also worth mentioning that with tezos-environment-manager (answer above) you have the tezos-client bake for <alias> command available at all times, due to the nature of the sanboxed client. Commented Feb 13, 2019 at 13:40
  • OK - Ive started from scratch again, recompiletd, etc. After compilation, when I run the node, its genesis header shows protocol PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i and then I do the inject for protocol Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P which succeded. Then the head block which is level 1 shows its header as having Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P But this is actually what I expect though. (right?)
    – Bo Byrd
    Commented Feb 13, 2019 at 16:53

DUH: tezos-client activate protocol PsddFKi32cMJ2qPjf43Qv5GDWLDPZb3T3bF6fLKiF5HtvHNU7aP with fitness 24 and key dictator and parameters ../mysandbox.json

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.