I have two contracts; adder and accumulator.
An inc method on the adder contract internally calls a method on the accumulator contract to increase the accumulator's value by 1.

Using my wallet on polkadot.js app, I called the inc function on adder contract. After the transaction got included in a block, I can see that the accumulator contract's state gets updated, and the nonce on my wallet address increases by 1. However, the nonce on the adder contract still reads 0.

Shouldn't the adder contract's nonce increase by 1 too ( like on EVM ), since it executed a transaction to call the accumulator contract?

1 Answer 1


Basically, nonce update when transaction creates between two different account (i.e. External Transaction). When contract invokes function of another contract then it is considered as Internal Transaction, hence nonce of contract doesn't update. Contract nonce update when contract create another contract.

The Transaction Nonce

  • Well in Ethereum, the transaction nonce updates when a contract instantiates another contract. However, on ink, the nonce of a contract stays at zero even if instantiates another contract.
    – Non-named
    Commented Feb 3, 2023 at 11:05

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.