I encountered a weird behavior. If you try to send 2 consecutive tx (in the same tezos block lifetime) you get invalid counter errors: Counter [NUMBER] already used for contract [ADDRESS]

Seems related to this: https://gitlab.com/tezos/tezos/issues/376

If you increase the counter you get the opposite error: contract.counter_in_the_future

  • It's an interesting issue you are highlighting. Do you think you could make it more into a question?
    – Klassare
    Jul 31, 2019 at 22:22

1 Answer 1


Ethereum has a similar frequently encountered problem, the notorious "duplicate nonce," that IIRC comes from a known limitation of the protocol. I'll bet Tezos is similar.

Your address has a global counter that increments for each xact. You can't reliably send two consecutive xacts without waiting for the first one to be accepted first. I'm guessing the reason you can't just increment the counter yourself is because the second one might go to a different node that doesn't yet know about the first. Maybe you sometimes get lucky.

Like the comments in the page you linked said, you're better off batching the two operations into one transaction, which I've personally seen working well.

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.