The Satcomma Standard

A Novel Notation Scheme For Sub-Decimal Amounts In Bitcoin

ProgrammableTX
Sep 18 · 12 min read

Regardless of what wallet software we use, the Bitcoin notation standard, i.e. how the numerals appear in your balance, is the primary UX component of our relationship with Bitcoin. The punctuation of money, i.e. the periods and commas, and where they appear in sequence, provide us with critical information regarding our personal wealth and the cost of goods. The notation standard is how we quickly derive meaning when long strings of numbers are appear next to each other.

In this article I propose a new notation standard for Bitcoin which uses commas on the right side of the decimal point, with comma separators at the expected intervals for the positional notation scheme we currently use for whole numbers: every three numerals counting from right to left. While this is a distinct break from customary notation, it instantly conveys the conversion rate between Bitcoin and satoshis, a.k.a. the smallest units of Bitcoin. Giving the user an instant reference for this conversion ratio is the sole utility of the new notation format.

.03445674 BTC

would be

.03,445,674

A Shift Toward Sats

A confluence of factors are leading to more and more vocal support for denominating Bitcoin entirely in sats. As sub-decimal amounts of Bitcoin become more and more prevalent in the broader economy, awareness of the satoshi unit is growing. On the Lightning Network, for example, where whole BTC amounts aren’t yet used in production, denominating in sats is a must.

Despite the trend towards sats, whole number Bitcoin denominations will be part of life for a long time. The notation format outlined above unites Bitcoin and sats in one visual representation.

What Problem Does This Solve?

If you interact with fractional Bitcoin amounts long enough, the basics will become second nature. Still, it took me probably two years before I could quickly and intuitively convert .5 BTC to 50 million sats because there is a mental barrier to making this conversion quickly. The difficulty lies in the fact that while sats are universally counted in millions, the word “million” itself is not a fraction, but a whole number, and a corresponds to a specific placement of commas to the LEFT of the decimal.

.5 BTC = 50,000,000.00 sats.

What we must come to grips with is that amounts expressed in sats imply a trailing decimal. The easiest way, then, to orient the user in notational space is to provide a comma separator every three numerals starting from the right, consistent with whole number notation.

It is only because Satoshi Nakamoto himself, the architect of Bitcoin, chose to add 8 zeroes to sub-decimal Bitcoin and not 9, that we wrestle, subconsciously perhaps, with the conundrum of the third comma in satoshis. Had Bitcoin been created with 9 zeros, then the third comma would be in it’s proper place whether you are reading from the right or from the left.

Had Satoshi added 9 zeroes then 1 billion sats would equal 1 BTC, and the decimal place would occur at the natural separator point.

Had he added nine zeros, 6.15 BTC and one satoshi would would equal 6.15 and one billionth of a BTC, or 6.150000001. Written in the new notation standard it would look like this:

₿6.150,000,001.

There is a familiarity to this because the decimal place occurs where we expect there to be punctuation. It makes sense to the eye and to the brain.

But Satoshi added 8 zeros to Bitcoin, so 1 Bitcoin = one hundred million sats, and we are left with an awkward notational result, which is that in order to truly think in sats, we must insert a mental punctuation mark (a period) where it nothing belongs: at the transition from ninety-nine million, nine hundred ninety-nine, to one hundred million.

Thus 6.15 BTC and one satoshi actually equals 6.15 and one one hundred millionth of a BTC, or 6.15000001. Written in the new notation standard it would look like this:

₿6.15,000,001.

It Never Mattered

This issue does not exist in traditional finance because sub-cent values, which exist only in accounting, are always rounded up to the nearest tenth by the time we see them as consumers. In fiat terms, one thousandth of a dollar does not exist. Bitcoin makes long strings of sub decimal values necessary for the first time in economic history. Because of the third comma conundrum and the new imperative to express 8 digit, sub-decimal strings, a new notational standard may be helpful. The scheme proposed above provides instant orientation and solves both problems.

Take a quick glance at the following numbers and narrate the sats conversion in your mind as you read. You will find it easy.

₿0.03,860,000

₿0.00,400,000

₿0.00,005,873

₿6.15,000,001

As demonstrated above, this notation standard is most helpful when making mental conversions between BTC and sats for amounts less than a million sats.

Say that you encounter the following amount:

₿0.004

In order to convert this to sats, the current notation standard leaves users with two options; either commit a conversion table to memory, or extend the zeros to the right when going from BTC to sats. The result is:

₿0.00400000

The problem with this exercise is that humans are not good at auditing amounts just by staring at a picture. After adding the zeros above, one must do at least one pass of error correction, double checking that the correct number of zeros have been added. It is a slow process.

Here’s another example:

698,000 sats.

In order to convert this to BTC we must do the same exercise above, but in reverse, extending the zeroes to the left and then adding a decimal. The result is:

₿0.00698000

While both of these conversions are simple, they must be done with painstaking accuracy. Another problem comes into play, and it has to do with biology.

Visual Deja Vu

When counting a string of zeroes on a computer screen, the human eye does not gradually move from character to character, but rather makes sharp, controlled, muscular twitches which take us from one point of focus to another. In film terms, it’s not a slow pan, but more like cut, as if from closeup to closeup. This becomes problematic when moving one’s visual focus down a long string of identical shapes, such as zeroes, since the imagery is the same on either side, and no visual anchor exists to assure us that the zero we are counting now isn’t the same zero we just counted! For this reason, when counting zeroes on a screen people often use their finger or the tip of a pen as tallying aid, because the further one goes, the more one starts to feel off by a power of 10. In Bitcoin, being off by one power of 10 is an expensive mistake.

The goal then is to create a notation standard which instantly accomplishes this conversion with a universally understood visual language, with built-in value signifiers to provide error correction at the first pass, and which allows the user to make value assessments without slowing down to count, then re-count individual zeroes, or having to resort to using pointing devices like fingers.

Positive Feedback

The proposal garnered a lot of discussion on Twitter. The main thing that surprised me was the overwhelming number of positive responses.

@JimmyKostro: “I can’t believe that it took 12 years until someone suggested this masterpiece.”

@JaslanRooney: “You’ve made a contribution to society that will live on forever. Well done.”

@BitcoinMonke: “This is genius”

@DrBitcoinMD: “oh. that’s interesting. that could work.”

@rajjha: “Brilliant.”

@dangershony: “It combines the best of both worlds, we stay in Bitcoin denomination but can easy read Satoshis, i like.”

@ZacharyPardey: “Please never show me balances without commas again”

@carlo_campisi: Right!? We’re looking into having this be the display for the sats rewards in our card interface

The most surprising revelation was that I was not the first person to think of it.

Mark Nugent recently published this excellent essay. He and I have independently come to the same conclusions. His proposal is to use an apostrophe for a delimiter instead of a comma, which I find less appealing. It is true that characters used as a delimiter can vary. Either the comma, period, apostrophe, underbar, space, or halfspace can all be used. Since commas are what we are accustomed to in the US, then that’s what I prefer. This proposal does not suggest that group separators become part of the protocol data. It should merely be a parameter of wallet software, and thus any delimiter can be overlaid as a output mask within the wallet and all are acceptable. Samourai wallet, for example, offers the use of the “space” as a delimiter, with traditional whole number groupings.

Criticisms

Reaction to the concept was not 100 percent positive.

Matt Senter from the BTC rewards plugin Lolli said “😬No thanks. But i will update the email to use § notation.”

Among those who don’t like the idea, some common critiques emerged.

Criticism #1 — Use Left To Right Groupings

The above format suggestions don’t work because they don’t mirror the traditional format of large whole numbers. If one is to depart from unorthodoxy in so blatant a manner as to put commas to the right of a decimal, then there must be some “sense” in whole number terms for the change. When I see 10,000,000 I know instantly that it means ten million. The commas, their placement, and the amounts they signify are deeply reflexive. Both of the formats suggested above would only aggravate the existing problems and provide no new solutions.

@roblanderos sums it up well: “Starting from the left is not the way to segment a large number into thousands. You add commas starting the count at the rightmost and going left. It works in terms of Bitcoin as long as eight decimal places are used.”

Criticism #2 - It’s Not Futureproof

@ConstructnRates echoed an interesting problem that a few others brought up, which is the future addition of zeroes to the protocol. This is something which I believe will be necessary, so let’s look at where we are right now, and try to imagine when that might be necessary.

At the time of this writing, one BTC is about $50,000.00, therefore one US dollar is worth about 2,000 sats, and one sat is worth half of one thousandth of a penny. There is currently no need to price goods with that level of granularity (except for BTC transactions themselves on the Lightning Network, which already has sub-satoshi amounts, but that’s a matter for another post).

Consider a point in the future when 1BTC=$1,000,000 USD, and therefore 1 dollar will be equal to 100 sats, and 1 sat will equal a penny. Will it be necessary to add a zero at this point? If we don’t have to do it at this point, then how about when 1 BTC=$10,000,000 USD and 1 satoshi equals 10 cents?

Whenever we reach the point where an additional zero is needed, that change will be implemented at the protocol level. The notation standard put forth in this post, however, is implemented at the wallet level, so it will be up to users and wallet designers where to put their commas. But part of my proposal includes this heuristic: one satoshi should always be the smallest unit of Bitcoin. So if a 9th zero is added to the protocol, then the satoshi is effectively devalued from 1 one hundred millionth of a BTC to 1 billionth of a BTC.

To understand the reason for this, one must grasp the reality that due to Bitcoin’s hard supply cap, then if it is to become the unit of account for the entire economy, and the economy grows, then the purchasing power of every satoshi will grow at the rate of growth in the entire economy. This implies that we will not be adding just one zero to the protocol, but rather that we will add zeroes forever as needed. The addition of zeros to the right of the decimal in Bitcoin will become like a clock, tolling the growth of humanity’s real capital worth in orders of magnitude. Bitcoin may someday have 10, 20, or 30 zeroes to the right of the decimal, and rather than introduce millisats, picosats, femtosats, etc. into our mental framework, the simpler and cleaner idea is to demote the satoshi itself, such that it always expresses the smallest unit of value in on the Bitcoin network.

The notation standard proposed here works with the above heuristic for the precise reason that if satoshis remain the last decimal, then satoshis can forever be counted in whole numbers, and the notation scheme can remain the same for as long as Bitcoin exists, and no matter how much the economy grows.

@oldcryptogeek pointed out different implementation problem in the future:

“But then you’re kind of forced to always include all integers. So 0.12 will have to be written 0.12,000,000

Whereas the other way you could shorten it

0.120

0.120,300

0.120,300,02

The other way would look odd unless always completed to the end

0.12,0

0.12,030

0.12,030,002"

In most cases you may have to write out the entire number, however in our current economy, most Bitcoin transactions do in fact use all eight decimals. Also, with this scheme, the more we see Bitcoin amounts written out to the last decimal place, the more we reinforce the conversion to satoshis.

@Piramida shared my conclusion:

“It’s a very rare case when significant amount of btc is mixed with full sat precision. usually it would be 12.56 or maybe 12.56,789 but real life use cases of btc will all be 0.00,123,456 more or less, where you instantly know it’s ~123k sats.”

@JohnXReed also sums it up succinctly:

“I like this methodology because it conveys both the bitcoin price and Satoshi price in one simple number display. No need for newbies to use google to convert from BTC => SAT.”

Criticism #3 — Just use sats!

This was far and away the most common critique.

I think that sats can and will be a prevalent standard. This eventuality, however, only amplifies the need to aid people in conversion to Bitcoin. The more things are priced exclusively in sats, the more important it is that people internalize this ratio. But no matter how common sats are, whole number Bitcoin amounts will still be ubiquitous.

“Moreover, applications like exchanges and blockchain explorers will probably always use BTC as their bitcoin unit of choice because they need to list large and small amounts together in a common format. Consider this screen grab of a list of unconfirmed transactions…” — Mark Nugent

Criticism #4 — What About Europe?

European countries currently use the inverse positioning for commas and periods. 10,500,000.00 in the United States is displayed as 10.500.000,00 in Europe. Ultimately the important part of this scheme is not in which delimiter is used, but in the fact that whole number delimiters are used to the right of the decimal. As stated above, since this notation scheme is an overlay of the wallet software, then it can be tailored for every region.

The Decimal Does Not Equate To Smallness

In closing, I’d like to turn briefly to the question of unit bias, and how this notation, in a roundabout way, helps to ameliorate the problem. Bias against numbers to the right of the decimal, the perception that they represent insignificant sums, is wholly appropriate to an inflationary system, where all values get continuously smaller in real terms. Bitcoin obviates this mode of thinking forever due to the hard cap supply of 21 million coins. For many of us, it will become daily practice to measure substantial wealth with a leading period. The satcomma standard, (credit to @ZoltanTokoli for the name) recreates whole numbers to the right of the decimal. Used in the context of money, this format retrains the mind to perceive territory to the right of the decimal place as a province of wealth.

Join Coinmonks Telegram Channel and Youtube Channel learn about crypto trading and investing

Also, Read

Coinmonks

Coinmonks is a non-profit Crypto educational publication.

Coinmonks

Coinmonks is a non-profit Crypto educational publication. Follow us on Twitter @coinmonks Our other project — https://coincodecap.com

ProgrammableTX

Written by

BTC is the internet of money. This doesn’t mean that the base of the stack is networking technology. It isn’t. The base of the stack is uncensorable value.

Coinmonks

Coinmonks is a non-profit Crypto educational publication. Follow us on Twitter @coinmonks Our other project — https://coincodecap.com