{"article":{"slug":"the-thin-wallet-thesis","title":"The Thin Wallet Thesis","subtitle":null,"summary":"XNS argues wallets should only verify, authorize, sign, and broadcast—leaving construction and UX to apps—so independent reverse-checks catch compromised transaction builders.","content_type":"essay","language":"en","canonical_url":"https://xns.name/blog/the-thin-wallet-thesis","author":{"name":"XNS","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"XNS","url":"https://xns.name","listing_slug":null,"listing":null},"topics":[{"name":"Security","slug":"security","url":"https://listedarticles.com/topics/security"},{"name":"Opinion","slug":"opinion","url":"https://listedarticles.com/topics/opinion"},{"name":"Engineering","slug":"engineering","url":"https://listedarticles.com/topics/engineering"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1697,"reading_minutes":7,"published_at":"2026-09-19T20:00:00.000Z","added_at":"2026-09-21T18:20:56.080Z","updated_at":"2026-09-21T18:20:56.080Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/the-thin-wallet-thesis","markdown_url":"https://listedarticles.com/articles/the-thin-wallet-thesis.md","example":false,"citation":"XNS, XNS. \"The Thin Wallet Thesis.\" 19 Sept 2026. https://xns.name/blog/the-thin-wallet-thesis (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://xns.name/blog/the-thin-wallet-thesis"},"body_markdown":"# The Thin Wallet Thesis\n\nWhat started as a relatively simple piece of software for holding keys, signing transactions, and broadcasting them to a network has gradually turned into something much larger.\n\nModern wallets resolve names, display token portfolios, show transaction histories, integrate swaps and bridges, offer staking, support perpetual trading and prediction markets, manage NFTs, provide address books, detect scams, price assets, and increasingly try to become full financial applications.\n\nEach individual feature may sound useful. Together, however, they raise a more fundamental question:\n\n## What is a wallet actually supposed to be?\n\n## We believe that a wallet should have four core responsibilities:\n\n**Verify. Authorize. Sign. Broadcast.**\n\nEverything else belongs at the application layer.\n\nApplications Should Construct. Wallets Should Verify.\n\nFinancial applications and wallets should have clearly separated responsibilities.\n\nThe application provides the user experience and constructs the transaction. The wallet independently verifies what that transaction actually does, asks the user to authorize it, signs it, and broadcasts it.\n\n## The application answers:\n\n## What does the user want to do?\n\n## The wallet independently answers:\n\n## What does this transaction actually do?\n\nThat independence is important. A wallet should not simply trust an application's description of a transaction. It should derive its meaning independently from the transaction it is being asked to sign.\n\nThe wallet should therefore not be the financial application itself. It should be the independent verification and authorization layer between applications and the blockchain.\n\nApplications Should Resolve Names. Wallets Should Verify Them.\n\nName resolution provides a good example of why this separation matters.\n\nSuppose a user wants to send 500 USDC to alice@xns .\n\nIn a dedicated payment application such as x2xPay , the user enters:\n\n500 USDC → alice@xns\n\n## The application performs forward resolution:\n\nalice@xns → 0xABC\n\nIt then constructs a transaction sending 500 USDC to 0xABC .\n\nThe wallet receives that transaction.\n\nBut instead of trusting the name supplied by the application, it examines the actual recipient encoded in the transaction and independently performs the opposite operation:\n\n0xABC → alice@xns\n\n## The wallet can now display:\n\n## Send 500 USDC\n\n## To: alice@xns\n\nThe two pieces of software approach the transaction from opposite directions:\n\n## Application: Name → Address\nWallet: Address → Name\n\nThis creates an independent verification layer.\n\nIf the application were compromised and constructed a transaction sending the funds to another address, the wallet would reverse-resolve that actual address. It would either display another name or no verified name at all.\n\n## This leads to a simple security principle:\n\nThe wallet should not create the transaction it is supposed to verify.\n\nIf the user instead enters alice@xns directly into a wallet's own payment interface, the wallet resolves the name, constructs the transaction, verifies it, and signs it.\n\nThe same piece of software is effectively checking its own work.\n\nA dedicated payment application preserves the separation: the application constructs the payment and the wallet independently verifies its meaning before authorization.\n\n## The Same Principle Applies to Calldata\n\nNames are only one example of independent verification.\n\nApplications also turn human intentions into calldata when users interact with smart contracts. A wallet can independently decode that calldata back into a human-readable description before asking for authorization.\n\n## The application might tell the user:\n\n## Swap 1 ETH for at least 3,200 USDC\n\nBut the wallet should not simply repeat that description. It should inspect the actual transaction and independently determine that this is indeed what the calldata instructs the smart contract to do.\n\nThere are already efforts toward standardized machine-readable metadata that can help wallets interpret contract interactions (see ERC-7730 or ERC-8213 ).\n\n## The broader principle is the same:\n\nApplications encode intent into transactions. Wallets independently decode transactions back into human-readable intent.\n\nUsers should not need to understand hexadecimal calldata. The wallet should do the technical verification and present only the information necessary for a meaningful authorization decision.\n\n## Name Systems Become Security Infrastructure\n\nThis architecture changes how we should think about blockchain naming systems.\n\nNames are no longer merely a UX convenience that replaces hexadecimal addresses. They can become part of the transaction verification layer.\n\nFor this to work well, a naming system should support reliable resolution in both directions:\n\n## Name → Address\nAddress → Name\n\nIdeally, that relationship should be canonical and unambiguous.\n\nA permanent 1:1 mapping between a name and an address like in XNS provides a particularly simple model: if the wallet reverse-resolves an address to a name, there is no ambiguity about which identifier represents that address within the system.\n\nInterestingly, independent reverse verification can also provide an additional safeguard for expiring payment identifiers like ENS .\n\nSuppose an application resolves a name and constructs a payment transaction, but the identifier expires or changes before the user authorizes the transaction.\n\nWhen the wallet independently reverse-resolves the actual recipient, it may receive a different name or no name at all.\n\nThe wallet should therefore never display the name claimed by the application as verified. It should only display a name if its own independent resolution confirms it.\n\nThis does not make permanence irrelevant. Stable identifiers make the security model simpler and remove an entire category of state changes that users and applications otherwise need to consider. But independent reverse resolution provides an additional defense even for naming systems whose records can change.\n\n## Thin Wallets Can Be Safer Wallets\n\nThere is a broader security argument for keeping wallets thin.\n\nEvery additional wallet feature introduces more code, more dependencies, more APIs, more network requests, and more potential for supply chain attack vectors, each of which increases the risk that something can go wrong.\n\nWallets occupy an unusually sensitive position because they control authorization.\n\n## That suggests we should apply the opposite philosophy:\n\nPut as little functionality as possible next to the keys.\n\nInstead of spending engineering resources building swaps, portfolio dashboards, payment applications, NFT galleries, staking interfaces, perpetual trading, prediction markets, and other application features, wallet developers can focus on making the four core functions exceptionally robust:\n\nVerify what the transaction actually does.\n\nAuthorize it through an understandable user interaction.\n\nSign it securely.\n\nBroadcast it to the network.\n\nThe wallet can become better at its most important security function.\n\n## Financial Applications Need Space\n\nThere is also a practical reason for moving functionality outside wallets: good financial software needs space.\n\nTrying to squeeze an entire financial experience into a browser extension or mobile wallet does not make much sense.\n\nConsider payments alone.\n\nA dedicated payment application can provide human-readable payment identifiers, payment requests, invoices, contacts, recurring payments, delayed payments, transaction annotations, accounting classifications, exports, spending analysis, transaction search, reporting, and much more.\n\nTrading can be another application.\n\nAccounting can be another.\n\nStaking can be another.\n\nLending can be another.\n\nPrediction markets can be another.\n\nA single application can combine some of these functions where that makes sense, but there is no reason the wallet itself needs to absorb them all.\n\nTake a web browser as an example.\n\nA web browser does not need built-in accounting software because accounting applications can run inside it. It does not need built-in banking software because banking applications can run inside it.\n\nCrypto should embrace the same separation.\n\nOpening a crypto financial application should feel more like opening e-banking.\n\nYou enter an environment designed around what you actually want to accomplish. You can see your transactions, counterparties, balances, notes, invoices, reports, or whatever else is relevant.\n\nOnly when authorization is required does the wallet appear.\n\nIt verifies the transaction, you authorize it, and the wallet signs and broadcasts it.\n\nThen you return to the application.\n\nThe wallet should be something you briefly open for verification and authorization, not somewhere you spend your financial life.\n\n## Hardware Wallets Already Point in This Direction\n\nHardware wallets provide the clearest example of the thin-wallet idea.\n\nAt their core, they do remarkably little.\n\nThey protect keys, receive transaction requests, obtain physical authorization, and sign them.\n\nThe thin-wallet thesis applies essentially the same principle to software wallets.\n\nA mobile phone can become the authorization device. A browser extension can serve as the authorization layer. A dedicated hardware device can provide even stronger isolation.\n\nThis is not only a design preference. Hot wallets remain a major source of loss. As pcaversaccio recently noted , SEAL 911 saw more than $2 million drained in a single day through device compromises. The usual advice is to move to cold storage.\n\nOne way to make that the default, rather than an afterthought, is to build wallet software that cannot create a hot wallet at all.\n\nIts entire purpose would be to connect an external hardware signer, independently interpret transaction requests, present them to the user, and broadcast the resulting signed transaction.\n\n## The form factor can differ. The principle remains the same:\n\nKeep the authorization environment small and move the financial experience outside it.\n\n## Onboarding Should Start With the Application\n\nThis also changes how we should think about onboarding.\n\n## Today, crypto onboarding often starts with:\n\nDownload a wallet.\n\nBut most users do not actually want a wallet.\n\nThey want to make a payment, trade an asset, earn yield, manage their finances, or use some other application.\n\nSo onboarding should start there.\n\nA user might open a payment application and create or connect a wallet through a simple, well-designed flow.\n\nThe wallet should feel almost like setting up a payment authorization device: quick, secure, and understandable.\n\nAfter that, the user returns to the application.\n\nThe wallet does not need to become the user's home screen for crypto.\n\nWallets could still help users discover applications. A wallet could effectively provide a small app store for financial applications: payments, trading, lending, accounting, staking, and other services.\n\nBut there is an important architectural difference between pointing users toward applications and becoming those applications.\n\n## Conclusion\n\nThe wallet does not need to be the center of the crypto experience.\n\nIt needs to be an exceptionally good verification and authorization layer.\n\nAs Ethereum matures, we may therefore want to reconsider the direction wallets have taken.\n\n## Instead of asking:\n\n## What else can we put into the wallet?\n\n## Perhaps we should start asking:\n\n## What can we take out?\n\nThe future may not belong to the wallet that does the most.\n\nIt may belong to the wallet that does the least — and does those few things exceptionally well.\n\n## Want to get an XNS name? \nRegister a Name","body_html":"<h1 id=\"the-thin-wallet-thesis\">The Thin Wallet Thesis</h1>\n<p>What started as a relatively simple piece of software for holding keys, signing transactions, and broadcasting them to a network has gradually turned into something much larger.</p>\n<p>Modern wallets resolve names, display token portfolios, show transaction histories, integrate swaps and bridges, offer staking, support perpetual trading and prediction markets, manage NFTs, provide address books, detect scams, price assets, and increasingly try to become full financial applications.</p>\n<p>Each individual feature may sound useful. Together, however, they raise a more fundamental question:</p>\n<h2 id=\"what-is-a-wallet-actually-supposed-to-be\">What is a wallet actually supposed to be?</h2>\n<h2 id=\"we-believe-that-a-wallet-should-have-four-core-responsibilities\">We believe that a wallet should have four core responsibilities:</h2>\n<p><strong>Verify. Authorize. Sign. Broadcast.</strong></p>\n<p>Everything else belongs at the application layer.</p>\n<p>Applications Should Construct. Wallets Should Verify.</p>\n<p>Financial applications and wallets should have clearly separated responsibilities.</p>\n<p>The application provides the user experience and constructs the transaction. The wallet independently verifies what that transaction actually does, asks the user to authorize it, signs it, and broadcasts it.</p>\n<h2 id=\"the-application-answers\">The application answers:</h2>\n<h2 id=\"what-does-the-user-want-to-do\">What does the user want to do?</h2>\n<h2 id=\"the-wallet-independently-answers\">The wallet independently answers:</h2>\n<h2 id=\"what-does-this-transaction-actually-do\">What does this transaction actually do?</h2>\n<p>That independence is important. A wallet should not simply trust an application&#39;s description of a transaction. It should derive its meaning independently from the transaction it is being asked to sign.</p>\n<p>The wallet should therefore not be the financial application itself. It should be the independent verification and authorization layer between applications and the blockchain.</p>\n<p>Applications Should Resolve Names. Wallets Should Verify Them.</p>\n<p>Name resolution provides a good example of why this separation matters.</p>\n<p>Suppose a user wants to send 500 USDC to alice@xns .</p>\n<p>In a dedicated payment application such as x2xPay , the user enters:</p>\n<p>500 USDC → alice@xns</p>\n<h2 id=\"the-application-performs-forward-resolution\">The application performs forward resolution:</h2>\n<p>alice@xns → 0xABC</p>\n<p>It then constructs a transaction sending 500 USDC to 0xABC .</p>\n<p>The wallet receives that transaction.</p>\n<p>But instead of trusting the name supplied by the application, it examines the actual recipient encoded in the transaction and independently performs the opposite operation:</p>\n<p>0xABC → alice@xns</p>\n<h2 id=\"the-wallet-can-now-display\">The wallet can now display:</h2>\n<h2 id=\"send-500-usdc\">Send 500 USDC</h2>\n<h2 id=\"to-alice-xns\">To: alice@xns</h2>\n<p>The two pieces of software approach the transaction from opposite directions:</p>\n<h2 id=\"application-name-address\">Application: Name → Address</h2>\n<p>Wallet: Address → Name</p>\n<p>This creates an independent verification layer.</p>\n<p>If the application were compromised and constructed a transaction sending the funds to another address, the wallet would reverse-resolve that actual address. It would either display another name or no verified name at all.</p>\n<h2 id=\"this-leads-to-a-simple-security-principle\">This leads to a simple security principle:</h2>\n<p>The wallet should not create the transaction it is supposed to verify.</p>\n<p>If the user instead enters alice@xns directly into a wallet&#39;s own payment interface, the wallet resolves the name, constructs the transaction, verifies it, and signs it.</p>\n<p>The same piece of software is effectively checking its own work.</p>\n<p>A dedicated payment application preserves the separation: the application constructs the payment and the wallet independently verifies its meaning before authorization.</p>\n<h2 id=\"the-same-principle-applies-to-calldata\">The Same Principle Applies to Calldata</h2>\n<p>Names are only one example of independent verification.</p>\n<p>Applications also turn human intentions into calldata when users interact with smart contracts. A wallet can independently decode that calldata back into a human-readable description before asking for authorization.</p>\n<h2 id=\"the-application-might-tell-the-user\">The application might tell the user:</h2>\n<h2 id=\"swap-1-eth-for-at-least-3-200-usdc\">Swap 1 ETH for at least 3,200 USDC</h2>\n<p>But the wallet should not simply repeat that description. It should inspect the actual transaction and independently determine that this is indeed what the calldata instructs the smart contract to do.</p>\n<p>There are already efforts toward standardized machine-readable metadata that can help wallets interpret contract interactions (see ERC-7730 or ERC-8213 ).</p>\n<h2 id=\"the-broader-principle-is-the-same\">The broader principle is the same:</h2>\n<p>Applications encode intent into transactions. Wallets independently decode transactions back into human-readable intent.</p>\n<p>Users should not need to understand hexadecimal calldata. The wallet should do the technical verification and present only the information necessary for a meaningful authorization decision.</p>\n<h2 id=\"name-systems-become-security-infrastructure\">Name Systems Become Security Infrastructure</h2>\n<p>This architecture changes how we should think about blockchain naming systems.</p>\n<p>Names are no longer merely a UX convenience that replaces hexadecimal addresses. They can become part of the transaction verification layer.</p>\n<p>For this to work well, a naming system should support reliable resolution in both directions:</p>\n<h2 id=\"name-address\">Name → Address</h2>\n<p>Address → Name</p>\n<p>Ideally, that relationship should be canonical and unambiguous.</p>\n<p>A permanent 1:1 mapping between a name and an address like in XNS provides a particularly simple model: if the wallet reverse-resolves an address to a name, there is no ambiguity about which identifier represents that address within the system.</p>\n<p>Interestingly, independent reverse verification can also provide an additional safeguard for expiring payment identifiers like ENS .</p>\n<p>Suppose an application resolves a name and constructs a payment transaction, but the identifier expires or changes before the user authorizes the transaction.</p>\n<p>When the wallet independently reverse-resolves the actual recipient, it may receive a different name or no name at all.</p>\n<p>The wallet should therefore never display the name claimed by the application as verified. It should only display a name if its own independent resolution confirms it.</p>\n<p>This does not make permanence irrelevant. Stable identifiers make the security model simpler and remove an entire category of state changes that users and applications otherwise need to consider. But independent reverse resolution provides an additional defense even for naming systems whose records can change.</p>\n<h2 id=\"thin-wallets-can-be-safer-wallets\">Thin Wallets Can Be Safer Wallets</h2>\n<p>There is a broader security argument for keeping wallets thin.</p>\n<p>Every additional wallet feature introduces more code, more dependencies, more APIs, more network requests, and more potential for supply chain attack vectors, each of which increases the risk that something can go wrong.</p>\n<p>Wallets occupy an unusually sensitive position because they control authorization.</p>\n<h2 id=\"that-suggests-we-should-apply-the-opposite-philosophy\">That suggests we should apply the opposite philosophy:</h2>\n<p>Put as little functionality as possible next to the keys.</p>\n<p>Instead of spending engineering resources building swaps, portfolio dashboards, payment applications, NFT galleries, staking interfaces, perpetual trading, prediction markets, and other application features, wallet developers can focus on making the four core functions exceptionally robust:</p>\n<p>Verify what the transaction actually does.</p>\n<p>Authorize it through an understandable user interaction.</p>\n<p>Sign it securely.</p>\n<p>Broadcast it to the network.</p>\n<p>The wallet can become better at its most important security function.</p>\n<h2 id=\"financial-applications-need-space\">Financial Applications Need Space</h2>\n<p>There is also a practical reason for moving functionality outside wallets: good financial software needs space.</p>\n<p>Trying to squeeze an entire financial experience into a browser extension or mobile wallet does not make much sense.</p>\n<p>Consider payments alone.</p>\n<p>A dedicated payment application can provide human-readable payment identifiers, payment requests, invoices, contacts, recurring payments, delayed payments, transaction annotations, accounting classifications, exports, spending analysis, transaction search, reporting, and much more.</p>\n<p>Trading can be another application.</p>\n<p>Accounting can be another.</p>\n<p>Staking can be another.</p>\n<p>Lending can be another.</p>\n<p>Prediction markets can be another.</p>\n<p>A single application can combine some of these functions where that makes sense, but there is no reason the wallet itself needs to absorb them all.</p>\n<p>Take a web browser as an example.</p>\n<p>A web browser does not need built-in accounting software because accounting applications can run inside it. It does not need built-in banking software because banking applications can run inside it.</p>\n<p>Crypto should embrace the same separation.</p>\n<p>Opening a crypto financial application should feel more like opening e-banking.</p>\n<p>You enter an environment designed around what you actually want to accomplish. You can see your transactions, counterparties, balances, notes, invoices, reports, or whatever else is relevant.</p>\n<p>Only when authorization is required does the wallet appear.</p>\n<p>It verifies the transaction, you authorize it, and the wallet signs and broadcasts it.</p>\n<p>Then you return to the application.</p>\n<p>The wallet should be something you briefly open for verification and authorization, not somewhere you spend your financial life.</p>\n<h2 id=\"hardware-wallets-already-point-in-this-direction\">Hardware Wallets Already Point in This Direction</h2>\n<p>Hardware wallets provide the clearest example of the thin-wallet idea.</p>\n<p>At their core, they do remarkably little.</p>\n<p>They protect keys, receive transaction requests, obtain physical authorization, and sign them.</p>\n<p>The thin-wallet thesis applies essentially the same principle to software wallets.</p>\n<p>A mobile phone can become the authorization device. A browser extension can serve as the authorization layer. A dedicated hardware device can provide even stronger isolation.</p>\n<p>This is not only a design preference. Hot wallets remain a major source of loss. As pcaversaccio recently noted , SEAL 911 saw more than $2 million drained in a single day through device compromises. The usual advice is to move to cold storage.</p>\n<p>One way to make that the default, rather than an afterthought, is to build wallet software that cannot create a hot wallet at all.</p>\n<p>Its entire purpose would be to connect an external hardware signer, independently interpret transaction requests, present them to the user, and broadcast the resulting signed transaction.</p>\n<h2 id=\"the-form-factor-can-differ-the-principle-remains-the-same\">The form factor can differ. The principle remains the same:</h2>\n<p>Keep the authorization environment small and move the financial experience outside it.</p>\n<h2 id=\"onboarding-should-start-with-the-application\">Onboarding Should Start With the Application</h2>\n<p>This also changes how we should think about onboarding.</p>\n<h2 id=\"today-crypto-onboarding-often-starts-with\">Today, crypto onboarding often starts with:</h2>\n<p>Download a wallet.</p>\n<p>But most users do not actually want a wallet.</p>\n<p>They want to make a payment, trade an asset, earn yield, manage their finances, or use some other application.</p>\n<p>So onboarding should start there.</p>\n<p>A user might open a payment application and create or connect a wallet through a simple, well-designed flow.</p>\n<p>The wallet should feel almost like setting up a payment authorization device: quick, secure, and understandable.</p>\n<p>After that, the user returns to the application.</p>\n<p>The wallet does not need to become the user&#39;s home screen for crypto.</p>\n<p>Wallets could still help users discover applications. A wallet could effectively provide a small app store for financial applications: payments, trading, lending, accounting, staking, and other services.</p>\n<p>But there is an important architectural difference between pointing users toward applications and becoming those applications.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>The wallet does not need to be the center of the crypto experience.</p>\n<p>It needs to be an exceptionally good verification and authorization layer.</p>\n<p>As Ethereum matures, we may therefore want to reconsider the direction wallets have taken.</p>\n<h2 id=\"instead-of-asking\">Instead of asking:</h2>\n<h2 id=\"what-else-can-we-put-into-the-wallet\">What else can we put into the wallet?</h2>\n<h2 id=\"perhaps-we-should-start-asking\">Perhaps we should start asking:</h2>\n<h2 id=\"what-can-we-take-out\">What can we take out?</h2>\n<p>The future may not belong to the wallet that does the most.</p>\n<p>It may belong to the wallet that does the least — and does those few things exceptionally well.</p>\n<h2 id=\"want-to-get-an-xns-name\">Want to get an XNS name?</h2>\n<p>Register a Name</p>","headings":[{"level":1,"text":"The Thin Wallet Thesis","id":"the-thin-wallet-thesis"},{"level":2,"text":"What is a wallet actually supposed to be?","id":"what-is-a-wallet-actually-supposed-to-be"},{"level":2,"text":"We believe that a wallet should have four core responsibilities:","id":"we-believe-that-a-wallet-should-have-four-core-responsibilities"},{"level":2,"text":"The application answers:","id":"the-application-answers"},{"level":2,"text":"What does the user want to do?","id":"what-does-the-user-want-to-do"},{"level":2,"text":"The wallet independently answers:","id":"the-wallet-independently-answers"},{"level":2,"text":"What does this transaction actually do?","id":"what-does-this-transaction-actually-do"},{"level":2,"text":"The application performs forward resolution:","id":"the-application-performs-forward-resolution"},{"level":2,"text":"The wallet can now display:","id":"the-wallet-can-now-display"},{"level":2,"text":"Send 500 USDC","id":"send-500-usdc"},{"level":2,"text":"To: alice@xns","id":"to-alice-xns"},{"level":2,"text":"Application: Name → Address","id":"application-name-address"},{"level":2,"text":"This leads to a simple security principle:","id":"this-leads-to-a-simple-security-principle"},{"level":2,"text":"The Same Principle Applies to Calldata","id":"the-same-principle-applies-to-calldata"},{"level":2,"text":"The application might tell the user:","id":"the-application-might-tell-the-user"},{"level":2,"text":"Swap 1 ETH for at least 3,200 USDC","id":"swap-1-eth-for-at-least-3-200-usdc"},{"level":2,"text":"The broader principle is the same:","id":"the-broader-principle-is-the-same"},{"level":2,"text":"Name Systems Become Security Infrastructure","id":"name-systems-become-security-infrastructure"},{"level":2,"text":"Name → Address","id":"name-address"},{"level":2,"text":"Thin Wallets Can Be Safer Wallets","id":"thin-wallets-can-be-safer-wallets"},{"level":2,"text":"That suggests we should apply the opposite philosophy:","id":"that-suggests-we-should-apply-the-opposite-philosophy"},{"level":2,"text":"Financial Applications Need Space","id":"financial-applications-need-space"},{"level":2,"text":"Hardware Wallets Already Point in This Direction","id":"hardware-wallets-already-point-in-this-direction"},{"level":2,"text":"The form factor can differ. The principle remains the same:","id":"the-form-factor-can-differ-the-principle-remains-the-same"},{"level":2,"text":"Onboarding Should Start With the Application","id":"onboarding-should-start-with-the-application"},{"level":2,"text":"Today, crypto onboarding often starts with:","id":"today-crypto-onboarding-often-starts-with"},{"level":2,"text":"Conclusion","id":"conclusion"},{"level":2,"text":"Instead of asking:","id":"instead-of-asking"},{"level":2,"text":"What else can we put into the wallet?","id":"what-else-can-we-put-into-the-wallet"},{"level":2,"text":"Perhaps we should start asking:","id":"perhaps-we-should-start-asking"},{"level":2,"text":"What can we take out?","id":"what-can-we-take-out"},{"level":2,"text":"Want to get an XNS name?","id":"want-to-get-an-xns-name"}]}}