I'm following steps from exchange-tutorial-python's README file inside the Docker container:

$ docker run -it eosio/eos
# nodeosd.sh 2>/dev/null &
# cleos wallet create
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
# cleos create key; cleos create key
Private key: 5JpkUEGHLnrmQJWpDjvo9nnHUnHtsx6d7ukir6uUyiKk64vyjVq
Public key: EOS7rGcyooUtUt3bVN23LjYNS9mxi9cN6bgD7VYP6FghWdLSQQMrD
Private key: 5KhkBhKGwcyBnktoFNjPt7XHYC1jRmQUe7hcgVVEWVsDDrzMCra
Public key: EOS4xfYEwxfB3PLvmDqGebCj3UHBxn3tF2v97RzKAugssxBwh4Y56
# cleos wallet import 5JpkUEGHLnrmQJWpDjvo9nnHUnHtsx6d7ukir6uUyiKk64vyjVq
imported private key for: EOS7rGcyooUtUt3bVN23LjYNS9mxi9cN6bgD7VYP6FghWdLSQQMrD
# cleos wallet import 5KhkBhKGwcyBnktoFNjPt7XHYC1jRmQUe7hcgVVEWVsDDrzMCra
imported private key for: EOS4xfYEwxfB3PLvmDqGebCj3UHBxn3tF2v97RzKAugssxBwh4Y56
# cleos create account eosio myuser EOS7rGcyooUtUt3bVN23LjYNS9mxi9cN6bgD7VYP6FghWdLSQQMrD EOS4xfYEwxfB3PLvmDqGebCj3UHBxn3tF2v97RzKAugssxBwh4Y56
executed transaction: 65da2c9e179157e5084d8b2e003bd3f2a65736d6d1d08a151cfb5f18a5512753  352 bytes  102400 cycles
#         eosio <= eosio::newaccount            {"creator":"eosio","name":"myuser","owner":{"threshold":1,"keys":[{"key":"EOS7rGcyooUtUt3bVN23LjYNS9…
# cleos set contract eosio.token /contracts/eosio.token -p eosio.token@active
Reading WAST/WASM from /contracts/eosio.token/eosio.token.wast…
Assembling WASM…
Publishing contract…
Error 3030002: signatures do not satisfy declared authorizations
Ensure that you have the related private keys inside your wallet and your wallet is unlocked.
Error Details:
transaction declares authority '{"actor":"eosio.token","permission":"active"}', but does not have signatures for it.

but it fails on the last step due to missing signatures. What I'm missing?

  • Did you create the eosin.token account? That first parameter in the set token command is the account to which the contract is attached. Commented May 8, 2018 at 16:56
  • Probably not, I'm testing it using fresh Docker container as shown.
    – kenorb
    Commented May 8, 2018 at 16:57

1 Answer 1


The set contract operation takes the account name as its first parameter (eosin.token in your example). If this account doesn't exist, if cannot set the contract. In your example above, you create a new account called myuser. You need to create an account called eosin.token in order to execute the set contract call you show.

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.