Send accepted any amount parseFloat() read as above zero, so "1e-3", "1abc" and an amount with more decimal places than the token has reached ConfirmTx, which then refused them. isValidAmount() in src/shared/txValidation.js is now the one check: Review and Max on Send call it with the token's decimal places, and validateTransfer() calls it for ConfirmTx, which now also refuses a zero amount and a token amount with more places than the token has. Model: opus-5-5