Draft: SNS Core

Overview

Writing names to Bitcoin is permissionless, meaning no service can enforce character validation at the point of inscription. Other naming systems have struggled with complexity and disputes over valid characters. These realities, combined with the fact that SNS began as an experiment, led the early community to opt for a highly permissive character set. It has been fun but also a mess!

Solution: SNS Core

SNS Core defines a stricter subset of valid characters and a limit on length which will improve SNS robustness for applications like wallet resolution.

Core Character Set

  • Letters (a-z)

  • Numbers (0-9)

  • Hyphen (-)

  • Underscore (_)

Upper or lowercase characters are both valid, but will indexed as lowercase.

Core Name Length

  • Name: Must be ≤ 63 characters

  • Namespace: Must be ≤ 63 characters

  • Combined: name, plus name space plus . can be up to 127 characters

These constraints mirror DNS standards and prevent indexing edge cases.

Note: There is no specification for subdomains in SNS yet.

Indexing SNS Core

SNS core does not make any breaking changes to indexers or invalidate any previously inscribed names. All rules in the SNS spec remain unchanged. SNS Core defines a subset of the existing names.

Only Index SNS Core

  • Follow the index spec

  • Add additional validation for Core characters and length restrictions

  • Recommended for wallets and DNS-like applications

Flag SNS Core

  • Follow the index spec

  • Add additional validation for Core characters and length restrictions and add a boolean flag to each name that passes.

  • Recommended for marketplaces

Last updated