Subassets - Allowed Characters

The Subasset CIP about to be implemented states that:

[code]Subasset names must meet following requirements :

1 to 250 characters in length (ie. PIZZA.X or PIZZA.REALLY-long-VALID-Subasset-NAME)
Contain only characters : a-zA-Z0-9.-_@!
Cannot start or end with a period (.)
Cannot contain multiple consecutive periods (…)[/code]

Let’s go through allowed characters step by step,


It’s obvious that A-Z are allowed. These are the only ones allowed in regular assets.


Numbers will come in handy too, e.g. PIZZA.COUPON2017.

The only potential issue with numbers is confusion between 0 / O and 1 / I.


a-z will make really long names more easily readable, e.g. PIZZA.Discount.Coupon.5off.Lunch.Weekdays. It may add a little bit extra confusion between lowercase L, uppercase I and number 1 (l / I / 1). It may also add confusion if an asset owner decides to make PIZZA.Coupon and PIZZA.COUPON. We should also take into account that a wallet designer may make a bad choice to display all assets uppercase, e.g. if it becomes the norm only to use uppercase. Finally, allowing lowercase may make subasset names a little bit less recognizable.


Special characters -_@! in addition to the necessasry . will make it more difficult to memorize asset names and may also add confusion. Was it PIZZA.DISCOUNT-COUPON or PIZZA.DISCOUNT.COUPON?

Special characters (except .) can be used consecutively, so a valid name can be PIZZA.------- or PIZZA.PEPPERONI!!CHEESE.


My advice is to simplify the rules:

[code]Subasset names must meet following requirements :

1 to 40 characters in length (ie. PIZZA.X or PIZZA.PEPPERONI.COUPON.5OFF.2017FEBRUARY)
Contain only characters : A-Z0-9.
Cannot start or end with a period (.)
Cannot contain multiple consecutive periods (…)[/code]

Regarding max length, see this thread.

@jdogresorg @deweller @loon3

Special characters … will make it more difficult to memorize asset names and may also add confusion

I think it the responsibility of the asset issuer to create an asset name that is not confusing. I don’t think we should disallow special characters at the protocol level because someone might create a hard-to-remember asset.

counterparty-----talk.org is a valid domain name. But nobody uses it because it is hard to remember.

I like allowing @ and - in asset names because you can issue subassets representing most email addresses.

1 Like