Skip to content

v4.0.80

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Sep 15:27
· 3 commits to develop since this release

What changed

A DigiAsset issued with transfer rules can no longer be sent from this wallet, because sending one destroyed the entire holding.

Some DigiAssets carry rules — most commonly a royalty that every transfer must pay to the issuer. This wallet did not know about rules and never built that payment. DigiByte accepted and confirmed the transaction normally, but the DigiAsset layer re-checks the rules afterwards and strips the assets from every output of a transfer that breaks one. Not just the amount sent — the whole holding the coins came from, the change meant to return to you, and any other asset on the same output. The wallet reported success and went on displaying a balance that no longer existed anywhere.

Reported privately by a security researcher who found it by reading the code, before anyone lost funds to it. Confirmed from source on both sides, then proven on mainnet with throwaway assets issued to a test device: sending 2 of 5 units destroyed all 5, the recipient received nothing, and the wallet still showed 3 units days later.

From this release:

  • An asset the wallet cannot prove is rule-free cannot be sent. The Send button is replaced by a plain explanation, in all 13 languages.
  • The same refusal applies to the recovery flow — a rule-bearing asset is left on the old seed rather than moved.
  • Nothing is signed and nothing is broadcast when it refuses.
  • Assets without rules, which is nearly all of them, send exactly as before.

The gate is deliberately fail-closed: an asset whose history has not been traced, or one still unlocked and therefore able to have rules attached later, is refused too. Leaving an asset where it sits costs nothing; getting it wrong the other way destroys it.

Limitation, stated plainly: this release prevents the loss, it cannot undo one. If you sent a rule-bearing asset from an earlier version, your wallet may still show units that no longer exist on chain, and this update will not correct that display. Check the asset on a block explorer to see what you actually hold.

Full notes: https://digiscope.me/wallet/releases/4.0.80


SHA-256: 7548e2edfe5044f3c7b4d497b3696e0eda6ecc8df25ac02ba66907d8b7884b0c

Download from digiscope.me/downloads/ or install the APK below. Requires Android 8.0+.

Source: https://github.com/JohnnyLawDGB/digibytewallet-android