If a user reuses an address, then the funds might be in jeaporady. Given that, at the moment, the Trinity wallet knows that the user has an active address from the snapshot, and from any recorded transactions from the node it is connected to, and I assume also from it's history in the local software install.

Suppose that a user does a fresh install, on a new device, with the same SEED and at the same time the balance has been all spent resulting in the latest SNAPSHOT not showing the address or a balance.

What if the user attaches the first address provided and then sends funds to it to spend?

Then how would the wallet software know not to reuse the address?

How does the wallet know that the SEED has addresses that are used when the balance was zeroed and the SNAPSHOT does not record all used balances that are now zero?

I'm not asking how it might hypothetically do that in the future. To be clear, I am asking how users are protected from that scenario in the current moment.

1 Answer 1


In the current moment, users are protected against this scenario by the same methods that protect them from sending to a wallet where the first 100 addresses are already spent before the last snapshot (as Trinity will not check that many addresses when you first add a seed and do not perform "Snapshot Recovery").

And it is the exact same way that the previous Light wallet could prevent double spends to addresses of other users since iri 1.4.2: There is an API call in iri which can be asked for status of addresses that have no balance and no transaction history (since the last snapshot), which will tell you if the address has already been spent from.

As you stated, this is the solution for the current moment. It has already been stated that this method does not scale well (as previousEpochsSpentAddresses*.txt is already larger than 100MB and it will only grow, never shrink), so it might be replaced by something different in the not so distant future.

Your Answer

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