<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Vestigia</title>
        <link>https://paragraph.com/@vestigia</link>
        <description>You'll find notes, fragments, and half-figured ideas on design, technology, and the weird joy of figuring things out — a trail of experiments I’ve left behind (and sometimes circled back to). Vestigia, if you will.</description>
        <lastBuildDate>Mon, 18 May 2026 20:02:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Vestigia</title>
            <url>https://storage.googleapis.com/papyrus_images/dfe188f1a97255cd96f193de439715c491387342c265cb5a270710b509888fca.jpg</url>
            <link>https://paragraph.com/@vestigia</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[The UX of Decimals]]></title>
            <link>https://paragraph.com/@vestigia/the-ux-of-decimals</link>
            <guid>HqonamZHxZbDFnbI5so8</guid>
            <pubDate>Thu, 25 Sep 2025 08:32:55 GMT</pubDate>
            <description><![CDATA[In finance, decimals are essential for accurately representing currency and its value. To earn users’ trust, the way they are displayed is just as important as the overall look and feel of your interfaces. While it is straightforward to represent fiat values with 2 decimal places (e.g., $0.02), the same cannot be said for crypto. In fact, most crypto assets trade in micro-values, and the ERC-20 token standard, for example, employs up to 18 decimal places by default.]]></description>
            <content:encoded><![CDATA[<h2 id="h-intro" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Intro</h2><p>In finance, decimals are essential for accurately representing currency and its value. To earn users’ trust, the way they are displayed is just as important as the overall look and feel of your interfaces.</p><p>While it is straightforward to represent fiat values with 2 decimal places (e.g., $0.02), the same cannot be said for crypto.</p><p>In fact, most crypto assets trade in micro-values, and the ERC-20 token standard, for example, employs up to 18 decimal places by default.</p><h2 id="h-the-most-common-problems" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The Most Common Problems</h2><p>Most front-end engineers and designers (myself included) often opt for the simplest solution: truncating decimals dynamically with <code>js</code> or <code>css</code>. You’ve probably seen solutions like these online:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fe0ba2e88ecba52050d5e1c39bebc79bb9463844f405b99a1c71ca55161c0364.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAVCAIAAACor3u9AAAACXBIWXMAABYlAAAWJQFJUiTwAAACCElEQVR4nO2VQYvTQBiGk4lpzA5l2OJCnBIDoW08FOqGQtuxbhg2u0OWYuweEimESA5LLVRrQOke3Huh9/0Be/f36EH/yspmaJBVuonoRXx5D8OE5J3v+54hgqwof9XC/wDldwNUCPlCBIC7itB2Fw0QBEEEQNd1xo4odcbjsed5jDFro0amfJ3v/DLjdoAKYbPVEgF4ZBju0QtK3TR9F8dxGIaapmGMdV03M/G1sZFpmgghqVK5I6CKUH8wEAF4iOtfv12enYWEPJtlWiwWURQlSWLbdq/XS9PU931Kqeu6lFLbtvOu3t0iqVLBuP75y+XbN69OT4OLi48fMoVhGEVRv9d7SshsNvM875BSxthhFgALBuSl3AxDuq9CKGQSAVB2dmRF2a3VbrohSSqE+YR3a7WiFeTwqFD9eXOLy2FaRQhmUrLJqxA+2Nvb7hIz4BQFQTAajabT6WQyeRmGrWaz0Wg8/oHUW7wWwrSK0PDggN8DxznuD0gQBIwxx3E4oBhjTdNM0+RfNwyDw1oC0yf7+yIAGNevrz+dn78+OXm+Wq3W67Xv+5Zlzefz5XJJCDFN0zAMSqnv+4yxcpjKioJx/erqfRCM3GMWx3GSJJRSy7L8TO12m1+3brc7HA4JIZ1OpxymGzrvyRWZY8rr48DkgPJTcwrKUZS9pm55WtD/8P9A/kMB3wF46JNegso+1wAAAABJRU5ErkJggg==" nextheight="800" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Commonly used solutions</figcaption></figure><p><strong>Option B introduces a problem:</strong> while the ellipses (...) and the fiat value ($0.02) suggest there’s more to the user’s balance, the display can still mislead users.</p><p>The issue becomes more serious when no fiat equivalent is available. Without the supporting context of a dollar value, the truncated display leaves users uncertain whether they hold any balance at all.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/64e21553031ecf686fe6d173369964b35fb830c053b50505a2b4dcdfd3e43d1f.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAVCAIAAACor3u9AAAACXBIWXMAABYlAAAWJQFJUiTwAAAA00lEQVR4nGNgZWenKWIYtYB91AL2IWgBMxuboLCwsrKyoqKinJyctLS0vIICfqSoqCgoLMzIzEysD4SFhWNi4mNiYuvBoLi42MrKShkJqKECDQ0NMTEx4i1gFRQW8fd39vR0Mje38PLy8vDwMDExUVZW1tPTs7Ky0tbWpsgCLm4uBgaO//82ffi0zc8vYtmypfv27SsrK1NWVi4uLp41a1ZAQICioiIlPmAXEBDU0FBVUVVCDmglWKxQIQ5Y2dkZmVkYmVmGZjJlHbWAfdQCVlIsAAAKJWD4esZnfAAAAABJRU5ErkJggg==" nextheight="800" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Some protocols end up something like this</figcaption></figure><p>When displaying crypto balances, the goal is to balance accuracy, readability, and trust. Here are two design rules to guide decimal display:</p><ol><li><p>Minimum Significant Decimals Rule</p></li><li><p>Value-scaled Precision Rule</p></li></ol><h3 id="h-1-minimum-significant-decimals-rule" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">1. Minimum Significant Decimals Rule</h3><p>Minimum Significant Decimals refers to the smallest number of decimal places that still carries meaningful information for users. Defining and enforcing this rule helps cover most edge cases. If you don't know which minimum decimals to choose, you can fall back on the native token’s decimals and test different values.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/83cbbe5d91d09f8dc937d5a03fe48ce4d3ca0749d8bb03e39e696740b9c493a4.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAfCAIAAAAJNFjbAAAACXBIWXMAABYlAAAWJQFJUiTwAAADeUlEQVR4nO1V0WvbRhx2iOc4qLIUne34bEUPnkA9elSNE1ERNU011Gq5WiBwUaP2wK2HhzsVg4eoSZlHngZ+MPPLBnsY2Qh9yNP2sJew9U/o2/LfbFCqW81ImywqDDboxyG+O3H36e736buMIIr/asu8FxD/mwISAIxwPM+aBECpXD6jzab8swAvFCCsNpuk2SRhGAYJTNPEGOsJ8BvQdV2WZY7nz7sDCKHvB74fDIfDOI673S7GWFEUVVXr9bqmaWxdhJCWACG0oigpBAqF4q+/jZ89+7Jev/jos0dfJYiiiFK6t7dHCEEJTNMMgsDzPNd1KxDygnAugYJYEMTi8+eTn38a2/atp093p9PpZDKJoqjdbsdx7Hke24FlWWEY+r7veV4FwhQ7kADI5YRcrgAhFArC4uLiQj7P87yYlB0AABMsLy9L4BUYSeeiUrkkAYl9lCiKFQirtRpbt/K2lkKA4/lqrUbpfUrv9/v9XoIt29Z1fS3B6pUrzE66rjO+traW2kWu23Scj9sJWq0WQkiWZU3TFEWp1+sIIeYiNUFqF13gi8fH37148f3Nm7en06/39/cnk8lwOPR9fzwex3FsmqamaZZlMXlCSAoXCaK4tFT84cfdb77dJcQbDp+MRqNer9dut23b7vf7d1otwzAQQoZheJ5HCLnlODCVgARAZo7LzC1KAHA8P5/NLuTzLDAYAUlyzAorAZDORaVyufrKMhW2UKlclmV5RVHYkxEG1l1RFJAmiwQIYbf7SafzII7jwWDw+WCwdf36LIveRDoXcXyhWqtuXrtxY+ujMAwppYQQjLGqqpqmMc+cyCKMcToX5XJLf/z5y+/H+7e374xGXxwdHR0eHkZRNBgMDg4OgiBgWeT7fqfTCcOQRUWKGhSL5dGo8/hxaFmbnudRSlutluM4rusSQlh0Y4xN07Rt+9rmpmVZMG0WZea4+Q845iLmnL8q9LfL591d9HqadMbb//mlLyUHctqxnEtgIZ+fz2bZP8zIjJ8YYUVKJ8Dx/LphXDXN1UbjEsbrhrFuGFu2fVnXVxuNy7q+YVmrjcaGZX2oqhUILyL0VgudJeA4zt2dnQcPH5Jm03Gcbrd7j1J3e/sepRuWRSm9u7Pzaa931TRXFGXdME7bxKlHNJ/NZl5jxhlZyOdnr97xiGbWPuH02ciJ7hlFfgmG9VVBbtp2WQAAAABJRU5ErkJggg==" nextheight="1152" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Decide on min/max number of decimals</figcaption></figure><h4 id="h-always-display-minimum-number-of-decimals" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Always display minimum number of decimals</h4><p>Example: <strong>1.150000 ETH</strong> instead of <strong>1.15 ETH</strong> — this avoids the impression of rounding uncertainty.</p><h4 id="h-set-a-maximum-number-of-decimals" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0"><strong>Set a maximum number of decimals</strong></h4><p>Example: <strong>0.00000427 ETH</strong> and <strong>0.000004271063139123 ETH</strong> both equal $0.02, so the extra precision adds no value.</p><p>Anything beyond 8 decimals is rarely useful, especially when the fiat equivalent rounds to cents.</p><h4 id="h-avoid-truncating-with-ellipsis" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Avoid truncating with ellipsis</h4><p>Example: Display &lt; 0.000001 instead of truncating to 0.00000…</p><h3 id="h-2-value-scaled-precision-rule" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2. <strong>Value-scaled Precision Rule</strong></h3><p>While the Minimum Significant Decimals Rule ensures clarity by avoiding under/over-rounding, the Value-Scaled Precision Rule helps adjust the number of decimals shown based on the size of the value.</p><p>The idea is simple: as values increase, fewer decimals are needed to remain meaningful. Your UI should scale precision according to the value, ensuring users always see enough detail without being overwhelmed by noise.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/db97f8bb07cac12256d79dd87c8d8c28d1f4a9c02f5c8f817854de25c0223c27.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAfCAIAAAAJNFjbAAAACXBIWXMAABYlAAAWJQFJUiTwAAAEPklEQVR4nLVWS2zcRBh2ILvadTz/7Mwwfu1413a6G8f7CM5uHruN0zQJeUhEQahBggNCRah3OFRceKgHqh64IJA4wIkbQkVqD3Dj0AqJqodyLFIPIBIeJUpQFd5dZG8IQeQhr+DXdxjZsj/P933z/5YwIf8rpN4eI/Qf6JUAY4jx71sKymUyOJPFmQzOyrgXAkIpoZQyxjknLFrvXceEWkUeNIxaoAcNw6/oR2ziKIJyqeQOusK1h73hYDSqIAjq9WoOG+++V9n+vf3lDxN3NsbXtycm2/l0GlNGExAAxkG9PlStuI3qVLu9vLy8uLg4Pz8/OTmugH75yuj9zvR32+1vtts7v82cPm31pyAZQVciQinnnFJKCAEAwJhxpih09UzhwqXySxdKr7xWevHlUtHmCsodKNRRJnfthb9Mjt/OGeeAcX8KJGlgDwjh/yCmCMAwTWFZCIBxuh+9mLwnFI2F+nsHqgaEyHIOAUVAATNZySFIvgPKWKFYFELkLWHb9mBcjuuesAsYaa9e9D6/3bx+M7h2Y/T6zUY90DNZnMwDBNBsNPyg7jZqp8Lp1bgeXVkJg4dBVi9fmbjfmfl2K9zYau38MjszV+glRZquq5qmi7xhmmY+r8eVz5uyzF44X/rok5H3r9Y+/Hjkg6t1z9eycsId7OYHYwBAAAhjFMeJUAoYpzOQSkE6Dek07u+HXjw4UDTdMPJCdFOk6WwXBj1QnGMIgJAcpbl411HDjIMUaWQYgKMGt/8cpNJwWFIPJeCqGhmg6Yaua7qmahEY57qhE6KPTZpvvO2//maEt96pzi9YqXRCk7mqtsbHTzTrWr08HYZzc3MrKytLS0sL1WFT0Z8953U6C5v3pr66e/KPzuzFSzVJGuBqEgLGuWM7YtAxy+5wXL7vD5XLw3YRFO2Jp9yNH8dvfdG4dXt0fWvs+fMlSRpgnCZPEQBGoCClWwghhURxYpyWPNWraF5FG/I1VaOAe0pRLvY5novR12m6bpomAohDhbsA6KkX7bVSILtTc7fZCYEQwoQ82A9SH4ogoVQaEhMwxjAhKucPEco475JFJ44xwjlX2SOL1uNr9uqavfak0zopDjtrBxMAxpZlNRsNs+QWxmplz2u3WlNhOBuGbdcdMgv1UfH13dbPnamNzfZPnfa1z8aSeQAYm/l8YyTQvUFxqulV/OkwDKenT01NhY5d0q2Rhlj/fnJzp3Vnffzer61PbzQTS0QoRbF9LJ5WCoqThJBCKaKUqfSxM4VnnnOfPuucPefOLYjDhtoxKUIAMkIKivpd9HYUVXch9cmSlJH6Bvoe6MnkrlC6YTiumxciL0TRtm3HEZYVDSLLsu2i7diaqZEoBsmbXffzhRC1WmSy7TiVarVWr9uO4/t+2fN836/WasKyDvz1SyBRVpZlRVHiRVaWFYRkRdlD99D1TrD/B+lAHPv4n5A/OuzbHzV8AAAAAElFTkSuQmCC" nextheight="1152" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Transforming numbers</figcaption></figure><p>The example above follows these rules (adjust them as needed):</p><ul><li><p>Start with a base precision of 8 decimals</p></li><li><p>For each power of 10 increase in the integer value, reduce the decimal precision by 1</p></li><li><p>Set a minimum floor of 2 decimals (optional but recommended)</p></li></ul><h4 id="h-when-not-to-apply-these-rules" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">When not to apply these rules</h4><p>While you can apply these rules to most of your UI, I wouldn’t recommend applying them to input fields. For example, in the Stake screen below. When a user interacts with the <strong>MAX function</strong>, it is recommended to display the token’s full default decimals.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/49892a4f82629b5584468b4f4d4bc14ef1711fd99710621948f09280a5924732.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAbCAIAAACSpRrNAAAACXBIWXMAABYlAAAWJQFJUiTwAAADzUlEQVR4nK1UXW/bNhT1+pFZri1VZDXJoj4oy5IoiZJhO7GsJEqatCkG+CF5SYD+lT4kRZN1zba0GPYXB+yp2IBhQ4A+aJDYKG6ifBTLwQEh05c8vOfysiGI4o0UAZhnNXObtY3bBLXaba7VanIc12q12u0Oz7MZXhD+rwAvCFCSpmmaJMkkSRaXluLBoGfbK6urq1kmK8qNGrcSCCkdDIfJdDpNUxpF2LKKmcHgDgSELy1qchyzqN3pfJ1FvChCSeqqqlKiewZVVVVUQGPQdU3T2G+kaVVYt9uVFUUu16qqCiWp0j7PAEqS67pRFBFCfN+PoohSijHWNM0wDL0OURR5nmfbNqV0srQ0Ho/jOLZtu0aAFwRJkgzDME1T13WEULUpQoidiyXERpaTZVkYY8MwMMamabJR13WpNgNRFJdKzGaz3d3d7e3t2Wy2vr6eZdnOzs7m5maWZVtbWxsbG1mWOY6jqiqzS9d1RVGSJCGEDAYxIQRAwF8uMpQk27Zd1w3DMC4RhmEQBOWyQRiGzLQ4jimlpmmeF6aUsW27zMYyDJPnIS9eygBA6DhOGIau66pltas6dy9hfndWe1VF2NKWl63hCK8/09udxyK4JPDZzbKwCCH1jJeh1kHTUM/WLEsz8Xd1NQAFhPKP4qkRRenrAcATAJ90+PNnai4DAFzXpZSGJYIgMAxDuwm117e+DwAAnudNJpPpdLq4uJgkia7r7KpcBVYquQRzSVEUhNAVAhBijC3LYt3AbpTjOBcuzPzZgyBIkmRtbS1NU0qp7/vTNHVdd/4lv1jkfr9vl2C79/v9a4zyPC+O4/F4PBqNiEecvhMHtGf1AIT1NXAcx/f9C/cE1R1/3qICsqxoKvIxSvrIxRDAmkYDELJ2rxy4scLaWZENw7B6PaOHdccysAlhXaNBCfp+fziMR8OYUhKGXhT5GGvX07IMhOSVlenJyfHzzfXl6WQ0jFmLXRTo8GBhQW5yCsd1m01lYUHmuO7Dh3LFBw8+c36ynJc4ritJNtdSmy3126bS7oBKoxAQgci1BBLIBz94+4cVyf6hd3BEKr5+S968I4c/FR/z8wdHReSr187+m2LhwREhocy1hPOnAkrg3v3O7l4vz1/k+dM836jlaZ79ebr6x1/paZ7VBTwrx6d5/v3uXq/ReAQlcC7wzb3O3steGbSaF+tr+O+nlY9/p79/TP/5dGVMufz53kv8hQCzKIjkd++9tyfkKh5/ID//Sn75jRx/uC7sx/ceHcgcN2cR02h3Hjcaj+6E1Vt94TUtvLoTzl/T/wDEm4O5DNpKwwAAAABJRU5ErkJggg==" nextheight="1030" nextwidth="1200" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">When user interacted with Max button</figcaption></figure><p>In this case, maximum accuracy matters more than readability.</p><h2 id="h-closing-thoughts" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Closing Thoughts</h2><p>Decimals may look like a small detail and are often overlooked in UI design, but how we present them has a big impact on user trust. We can show numbers in a way that <strong><em>feels</em></strong> both accurate and trustworthy by carefully designing its logic.</p><p>Especially in crypto where the difference between 0.000004 &amp; 0.00000427 can matter, this balance becomes even more important. Getting it right doesn't just make the interface cleaner but it can also make the entire UX feel more reliable.</p><p>And while this article focuses on finance &amp; crypto, the same principles hold true whenever precision and readability are needed. From everyday tools to products that deal with numbers at scale.</p><p>If you have any ideas on how to further improve this, or just want to chat, feel free to reach out at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="mailto:hello@javierlo.com"><strong>hello@javierlo.com</strong></a>.</p><p>Thank you for reading. 🙏🏻</p><p>* Note: All UI examples are handcrafted by Javier Lo.</p><br><br>]]></content:encoded>
            <author>vestigia@newsletter.paragraph.com (Javier Lo)</author>
            <category>design</category>
            <category>product</category>
            <category>crypto</category>
            <category>finance</category>
            <category>web3</category>
            <category>ux</category>
            <enclosure url="https://storage.googleapis.com/papyrus_images/718bd20a1dd2d94ff0bc36a10504df6be5c98273948e154644ea009719327fc2.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>