When trying to send an ERC-20 token that is set to zero decimals using the Metamask browser extension on Chrome on Windows, Metamask appears to be treating the token as having 18 decimals instead of 0. This results in an "Insufficient tokens." error displayed and the Continue option being disabled when entering whole number values for the send. All other parts of Metamask seem to handle the zero decimal value correctly.
Selecting MAX here shows Metamask treating the token value as having 18 decimals instead of 0:
I do not see the same behavior in the Metamask iOS app when sending the zero decimal token. The token contract I am working with is 0x8cdf9becee3d673ed725345c2dea7656a801cd58 on Polygon Mainnet. Unfortunately I do not have a good way to test this behavior with another zero decimal token.
Expected behavior
I expect to be able to send a whole number of the zero decimal token, without receiving an "Insufficient tokens." error or having to work around the issue by providing a value set to 18 decimals when sending using the Metamask browser extension.
Screenshots/Recordings
See screenshots in description.
Steps to reproduce
Import an ERC-20 token set to 0 decimals (I am using ORIGINS on Polygon Mainnet 0x8cdf9becee3d673ed725345c2dea7656a801cd58).
Obtain 1 or more of the imported token. I can provide ORIGINS tokens for testing if needed.
Describe the bug
When trying to send an ERC-20 token that is set to zero decimals using the Metamask browser extension on Chrome on Windows, Metamask appears to be treating the token as having 18 decimals instead of 0. This results in an "Insufficient tokens." error displayed and the Continue option being disabled when entering whole number values for the send. All other parts of Metamask seem to handle the zero decimal value correctly.
Selecting MAX here shows Metamask treating the token value as having 18 decimals instead of 0:
I do not see the same behavior in the Metamask iOS app when sending the zero decimal token. The token contract I am working with is 0x8cdf9becee3d673ed725345c2dea7656a801cd58 on Polygon Mainnet. Unfortunately I do not have a good way to test this behavior with another zero decimal token.
Expected behavior
I expect to be able to send a whole number of the zero decimal token, without receiving an "Insufficient tokens." error or having to work around the issue by providing a value set to 18 decimals when sending using the Metamask browser extension.
Screenshots/Recordings
See screenshots in description.
Steps to reproduce
Error messages or log output
Detection stage
In production (default)
Version
12.2.4
Build type
None
Browser
Chrome
Operating system
Windows
Hardware wallet
No response
Additional context
No response
Severity
No response