Keycard Shell is a modular, fully open-source, air-gapped hardware wallet that signs via QR codes (ERC-4527). It has a built-in keypad, display, and camera, optional USB (can be turned off), and uses removable Keycards for secure key storage and backups. Keycard is a BIP-32 HD wallet running on JavaCard with EAL6+ secure element. Supports BIP-39 and SLIP-39 seed phrases.

Platforms: as a hardware wallet.

Stage Progress


Security

How secure is Keycard Shell?
Does the wallet warn the user about potential scams?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Transactions in Ethereum are very difficult to reverse, and there is no shortage of scams. Wallets have a role to play in helping users avoid known scams ahead of the user making the transaction.

How is scam prevention evaluated?

Wallets are rated based on whether they alert the user about potential scams. This is measured along three scenarios: Does the wallet warn the user when...

  • Sending funds to an address the user has never previously sent or received funds from before
  • Interacting with a contract that is known to be a scam
  • Interacting with a contract that the user has never previously interacted with before
  • Interacting with a contract that has only recently been deployed onchain
  • Connecting to an app that is known to be a scam

For payments-focused wallets that do not support interacting with arbitrary contracts or external applications, only the payment scenario applies.

Note that wallets should only warn the user about such scenarios, not outright prevent the user from making such transactions, as preventing them entirely would limit the user's ability to have real sovereignty over their own wallet.

Wallets are also rated based on whether these warnings are implemented in a privacy-preserving manner. Specifically:

  • When sending funds, does the lookup for past interactions with that address unconditionally reveal the sender and recipient addresses to an external provider other than the wallet's default RPC provider for this chain?

    • Wallets can implement this feature in a privacy-preserving manner by maintaining a local set of known addresses.
  • When interacting with a contract, does the check whether that contract is known to be a scam reveal the user's IP address together with the contract address about to be interacted with?

    • This is a privacy leak similar to that of leaking the user's browsing history, as contract addresses are usually closely tied to the application being visited.
    • Wallets can implement this feature in a privacy-preserving manner by maintaining a local, frequently-updated cache of known-scam contract addresses.
  • When connecting to an application, does the check whether that application reveal the domain name or URL of the application being used?

    • If leaking full URLs, this is a privacy leak similar to that of leaking the user's browsing history.
    • If leaking domain names only, they must not be linkable to the user's IP address or Ethereum address.
    • Wallets can implement this feature in a privacy-preserving manner by maintaining a local, frequently-updated cache of known-scam contract URLs, or by looking up such a list based on a domain hash prefix like Safe Browsing.
When signing a transaction, does the wallet show transaction details clearly?
PARTIAL
  • Keycard Shell supports partial transaction legibility on the hardware device. The device displays most transaction details and may support calldata decoding for some transaction types, but may not fully decode complex nested transactions or provide all data extraction methods. Showing transaction details directly on the hardware device is crucial for security as it allows users to verify transaction details independently of potentially compromised software.

    Calldata Decoding

    Decoded on-device.

    ✓ Supported: basic token transfers (ERC-20)

    ✗ Missing: ZKSync token transfers, DeFi interactions (e.g., Aave), nested Safe transactions and complex nested multisend transactions

Why should I care?

Transaction legibility is a critical security feature for wallets that allows users to verify transaction details directly on their wallet's screen/window before signing. This verification step is crucial for preventing attacks where malicious software might attempt to trick users into signing transactions with different parameters than what they intended.

Without this, users are at the mercy of the app they are interacting with sending them a bad transactions, either because they have a bug, were hacked, or are malicious. Without a signer being able to verify if their transaction is correct, user should not send such a transaction.

Full transaction legibility implementations ensure that all relevant transaction details (recipient address, amount, fees, etc.) are clearly displayed on the wallet screen, EIP-712 message hashes, and decoded calldata, allowing users to make informed decisions before authorizing transactions.

How is a wallet evaluated for clearly showing what users are signing?

Wallets are evaluated based on key aspects of transaction legibility, with different criteria for software and hardware wallets:

Calldata Decoding/Display: The wallet's ability to decode and display calldata for various transaction types, including:

  • Simple transfers
  • Token approvals
  • DeFi interactions
  • Complex nested transactions

Transaction Details Display: The wallet's ability to display essential transaction information:

  • Gas limit and/or gas price
  • Transaction nonce
  • Sender address (from)
  • Recipient address (to)
  • Chain/network identifier
  • Transaction value/amount

Software Wallet Specific Requirements: For software wallets, calldata must be displayed in multiple formats:

  • Raw hex format: Users can view the raw hexadecimal calldata
  • Formatted output: Users can view decoded, human-readable calldata
  • Copy to clipboard: Users can copy the calldata directly for verification

Hardware Wallet Specific Requirements: For hardware wallets, the signature/transaction information must be visible on the hardware wallet device itself. Any data shown on a software wallet component is ignored for hardware wallet ratings.

Hardware wallets must also provide data extraction methods to allow users to independently verify transaction data:

  • Visual display: Users can view the data on the hardware wallet screen
  • QR code: Users can scan a QR code displayed on the device to extract data
  • Hashes: Users can compare hashes displayed on the device to verify data

Rating Criteria:

For software wallets:

  • A wallet receives a passing rating if it displays calldata in all three formats (raw hex, formatted, copyable) and displays all essential transaction details.
  • A wallet receives a partial rating if it has some combination of these features, but not all at the full level.
  • A wallet receives a failing rating if it lacks calldata display capabilities or does not display essential transaction details.

For hardware wallets:

  • A wallet receives a passing rating if it supports decoding of complex nested transactions, displays all essential transaction details on the device, and provides comprehensive data extraction methods (QR codes and hashes, in addition to visual display).
  • A wallet receives a partial rating if it has some combination of these features (decoding support, transaction details display, or data extraction methods), but not all at the full level.
  • A wallet receives a failing rating if it lacks calldata decoding support, does not display essential transaction details on the device, and provides no effective data extraction methods.

What can Keycard Shell do to make it easy for users to understand what they are signing?

Keycard Shell should implement the following improvements:

Calldata Decoding: Add on-device support for ZKSync token transfers, DeFi interactions (e.g., Aave), nested Safe transactions and complex nested multisend transactions

Transaction Details: Display Transaction nonce on the device

Data Extraction: Implement Hash display for verification to allow independent verification

Does Keycard Shell use a secure and efficient passkey verification library?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Passkeys provide a secure and phishing-resistant way to authenticate users without relying on seed phrases. Using gas-efficient and well-audited libraries for verification is crucial both for security and cost-effectiveness.

P256 signature verification is computationally expensive on-chain, so using optimized libraries reduces transaction costs.

Some verification libraries have undergone multiple security audits while others may have fewer or no publicly available audits.

How is a wallet's passkey implementation evaluated?

Wallets are assessed based on the passkey verification library they use:

  1. Pass (Best): Using the most gas-efficient and well-audited library like:

  2. Partial: Using libraries that work but are less optimal:

  3. Fail: Not implementing passkeys or using a non-recognized library.

Wallets that don't support smart contract accounts or are hardware wallets are exempt from this rating.

Does Keycard Shell maintain an active bug bounty program with a clear disclosure and upgrade process for security issues?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Hardware wallets manage sensitive cryptographic keys and access to users' funds, making them high-value targets for attackers. Bug bounty programs incentivize security researchers to responsibly discover and disclose vulnerabilities, rather than exploit them.

A well-structured bug bounty program:

  1. Provides clear guidelines for researchers to report vulnerabilities
  2. Offers appropriate rewards based on severity of findings
  3. Demonstrates a commitment to addressing security issues quickly
  4. Communicates transparently about discovered vulnerabilities and their resolution

Additionally, hardware wallets should provide upgrade paths for users when critical security issues are discovered, as these physical devices can't always be fixed with simple software updates.

How is a hardware wallet's bug bounty program evaluated?

Hardware wallets are assessed based on the comprehensiveness of their bug bounty program:

  1. Pass (Best): Implements a comprehensive bug bounty program with:

    • Active program accepting vulnerability reports
    • Full coverage of hardware, firmware, and software components
    • Competitive financial rewards based on severity
    • Responsive disclosure process
    • Transparent communication about fixes
    • Clear upgrade paths for users when needed
  2. Partial: Implements a basic bug bounty program with limitations:

    • May have limited coverage (only certain components)
    • Smaller or unclear rewards
    • Basic vulnerability disclosure policy without formal rewards
    • Slower response times
    • Unclear upgrade paths for users
    • Inactive or temporarily paused programs
  3. Fail: No bug bounty program or security update process:

    • No formal process for reporting vulnerabilities
    • No incentives for responsible disclosure
    • No clear path for providing security updates
    • Known critical vulnerabilities remain unaddressed
Does Keycard Shell have a secure and transparent factory supply chain?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Ensuring the security and transparency of the factory supply chain is vital to prevent tampering or compromise during manufacturing, packaging, and delivery. Users need confidence that the device they receive is genuine and hasn't been maliciously altered.

How is a factory wallet's supply chain evaluated?

Evaluated based on:

  • Factory Operational Security: Availability and verification (audits, certifications) of documentation detailing security practices during manufacturing.

  • Tamper Evidence: Effectiveness of physical seals or mechanisms to detect package tampering.

  • Hardware Verification: Ease of verifying the received hardware against a Bill of Materials (BOM) or reference design.

  • Tamper Resistance: Physical device protections (e.g., security mesh) against unauthorized modification.

  • Genuine Check: Availability and reliability of software/hardware mechanisms to verify device authenticity before and during use.

  • Anti-Kleptography: Measures to prevent cryptographic keys or randomness from being subtly leaked during operations.

Does Keycard Shell have secure and open firmware?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Firmware security and openness are critical for user trust, resistance against attacks, and ensuring the device can be safely upgraded. Users need assurance that the code running on their device is authentic and hasn't been tampered with. Openness allows for independent verification and community audit.

How is a wallet's firmware evaluated?

Evaluated based on several factors:

  • Update Security: Protection against silent/forced updates, authentication requirements for updates, and possibility of downgrades.
  • Source Code Openness: Availability and licensing of firmware source code (full or partial), and isolation between open/closed parts.
  • Build Verifiability: Ability to reproduce firmware builds from source and compare against official binaries (reproducible builds).
  • Runtime Integrity: Mechanisms to check the authenticity of the code running on the device.
  • Custom Firmware: Support for users loading custom firmware and its impact on device security/integrity.
Does Keycard Shell provide comprehensive user safety features?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

User safety features are crucial for ensuring users clearly understand the transactions and messages they are signing on their hardware device. This involves presenting information legibly (human-readable addresses/contracts/parameters), providing tools to verify raw data, offering risk analysis and transaction simulation, and preventing unintended actions.

How is a wallet's user safety evaluated?

Evaluated based on the following criteria (mapped to 16 internal sub-criteria):

  • Human readable addresses: Are raw addresses easy to review? Is the HWW displaying the ENS linked to an address if available?

  • Human readable identification of well known contracts: Is the HWW displaying information about well known contracts? How reliable is it (considering rogue proxies)? How independently chosen is it?

  • Possible to review all TX parameters raw: Are all raw parameters from a TX displayed? Easy to review (calldata…)?

  • Human readable review of TX parameters: Is the HWW displaying a human readable version of some/all parameters? Are there restrictions?

  • Coverage of human readable TX parameters reviewable: Describe how extensive/limited the display of human readable TX parameters is. Is it using independent data? How frequently is it collected and updated?

  • Easy to extend human readable TX parameters: Is it possible for the user to add support to get a human readable display of an unknown TX parameter? Describe the process.

  • Expert mode for TX review: Is there a mode available to sign the transaction quickly while displaying enough information to verify the TX on a secondary trusted computer?

  • Possible to review all EIP 712 parameters raw: Are all raw parameters from an EIP 712 message displayed? Easy to review (structures, byte arrays,…)?

  • Human readable review of EIP 712 parameters: Is the HWW displaying a human readable version of some/all parameters? Are there restrictions?

  • Coverage of human readable EIP 712 parameters reviewable: Describe how extensive/limited the display of human readable EIP 712 message parameters is. Is it using independent data? How frequently is it collected and updated?

  • Easy to extend human readable EIP 712 parameters: Is it possible for the user to add support to get a human readable display of an unknown parameter in an EIP 712 message? Describe the process.

  • Expert mode for EIP 712 review: Is there a mode available to sign an EIP 712 message quickly while displaying enough information to verify the EIP 712 message on a secondary trusted computer?

  • Risk analysis support: Is the HWW displaying a risk evaluation / threat warning to the user when signing transactions or messages? Describe how the evaluation works.

  • Risk analysis without phoning home possible: Is it possible to run the risk analysis process without contacting the HWW manufacturer? Describe which external services are involved and if the full TX/message data could be recovered by any party.

  • Fully local risk analysis possible: Is it possible to run the risk analysis evaluation locally? Describe the components provided by the HWW provider and the setup.

  • TX simulation support: Is the HWW displaying high level simulation results (balance difference…) to the user when signing transactions or messages? Describe how the evaluation works.

  • TX simulation without phoning home possible: Is it possible to run the simulation process without contacting the HWW manufacturer? Describe which external services are involved and if the full TX/message data could be recovered by any party.

  • Fully local TX simulation possible: Is it possible to run the simulation locally? Describe the components provided by the HWW provider and the setup.

Rating thresholds: PASS if >=11/16 criteria pass, PARTIAL if >=6/16 pass, else FAIL.

How easy does the wallet make it to recover your account?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

What if you forget your seed phrase?

Self-custody is difficult and complicated for most normal users, relative to typical web2 accounts which often feature easy account recovery features. Moreover, losing one's seed phrase can be a devastating and irrecoverable financial loss. Some users avoid self-custody due to this concern.

Guardian-based recovery (also known as "Social recovery") helps make self-custody safe and practical for everyday users. Properly implemented, this keeps users safer while still providing the self-sovereignty benefits of self-custody in the day-to-day.

How is account recovery evaluated?

Wallets are evaluated based on their implementation of guardian-based recovery.

To qualify, wallets must implement at least one form of guardian-based recovery. They must also ensure that whatever option the user picks (as allowed by the wallet's onboarding flow), all the following prongs are satisfied:

  • If the user loses access to their device (which can include both their wallet's software and their passkeys), can they still recover their account on a separate device?
  • If any single external provider goes out of business, can the user still recover their account?
  • If any single external provider is compromised or turns evil, can the user's account be taken over by that provider?

This attribute explicitly does not consider the scenario of the user's own self-custody key being compromised, as defenses against such scenarios are covered by a separate attribute in the Self-Sovereignty category.


Privacy

How well does Keycard Shell protect your privacy?
Is your wallet address linkable to other information about yourself?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Your wallet address is unique and permanent, which makes it easy for applications and companies like Chainalysis to track your activity. In web-privacy terms, it is worse than cookies: wallet addresses are permanent, publicly visible, and can even be tracked across multiple devices and websites. The more personal information is linkable to your wallet address, the more effective such tracking can be. It is therefore important to use a wallet that protects your information from being linked to your wallet address.

How is wallet address privacy evaluated?

In order to qualify for a perfect rating on wallet address privacy, a wallet must not, by default, allow any external entity to link your wallet address to any personal information.

As Walletbeat only considers the wallet's default behavior, wallets may still choose to offer features that allow external providers to link wallet addresses with personal information, so long as this is done with explicit user opt-in.

To determine this, Walletbeat looks at the network requests made by wallets in their default configuration, and the contents of such requests. If a request contains the user's wallet address, we look at whether it also contains any other personal information, such as the user's name, pseudonym, email address, phone number, CEX account information, etc.

Additionally, if such a request is not proxied, then it inherently reveals the user's IP address and ties it with the user's wallet address, which is also personal information.

Can your multiple wallet addresses be correlated with one another?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

You probably have more than one wallet address configured in your wallet, which you use for different purposes and perhaps as different identities. These wallet addresses all belong to you, but you would rather keep that fact private. It is therefore important to use a wallet that does not reveal that fact.

How is multi-address privacy evaluated?

Wallets are assessed based on whether an external provider can learn that two or more of the user's wallet addresses belong to the same user.

An external provider may learn of this correlation either through:

  • The wallet software explicitly sending this data (e.g. through analytics)
  • Requesting data about multiple wallet addresses in bulk, allowing the receiving endpoint to learn that all of these addresses belong to the same user. Similar correlations are also possible by IP and/or time-based correlation of requests that each contain one wallet address.

In order to prevent this information from being revealed, wallets can use a variety of strategies:

  • Wallets may offer the user to only have one active wallet address at a time, and only ever makes requests about the active wallet address. The user is expected to not change their active address often. The wallet should also ensure that any account-switching widget does not cause bulk/simultaneous requests about multiple addresses to the same endpoint, such as for refreshing balances. Note that this scheme, while simple to implement, is incompatible with stealth addresses. This is because stealth addresses inherently require the user to simultaneously manage a range of addresses.
  • Wallets may look up information about multiple addresses by splitting up the requests such that each request only contains one address, then sending these requests over different proxy circuits in a manner that staggers the requests over time. This ensures that the receiving endpoint cannot correlate addressed based on timing or IP address.
  • Wallets may distribute requests across multiple RPC endpoints owned by separate entities for each wallet address, preventing each entity from learning more than one wallet address.
Can you send and receive tokens without revealing your transaction history to others?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Data posted on public blockchains like Ethereum is publicly available to everyone. This means that anyone can see your transaction history. You would not voluntarily post your bank statements or private purchase history online, yet this is what happens by default when transacting on public blockchains.

Many privacy solutions have emerged to solve this problem. However, to be actually usable by users, these solutions must be tightly integrated in wallets and easy to use. Walletbeat looks at whether wallets let users send, receive, and spend tokens privately by default.

How is token transfer privacy evaluated?

In order to get a passing rating, wallets must ensure that sending Ether or ERC-20 tokens to other addresses comes with privacy guarantees by default. In addition, they must ensure that users can receive and spend such tokens privately.

"Privately" here means that other than the wallet user, no single entity (including any external provider) can infer or reconstruct the user's transaction history.

Walletbeat currently recognizes the following privacy-preserving token transfer solutions:

Does Keycard Shell protect user privacy at the hardware level?
PASS
  • Keycard Shell hardware privacy evaluation is pass.

Why does this matter?

Hardware privacy ensures that the device itself does not leak sensitive user information (like IP address, public keys, or usage patterns) during setup, regular operation, or updates. This is distinct from the privacy features of the transactions created using the wallet.

How is a wallet's hardware privacy evaluated?

Evaluated based on:

  • Phoning Home: Whether the device contacts manufacturer servers during setup, operation, or updates, and if these connections are necessary.

  • Inspectability: Ability to monitor and understand data exchanged if the device does phone home.

  • Wireless Privacy: Protection of data transmitted over wireless connections (e.g., BLE, WiFi) against local attackers.

What can Keycard Shell do to improve its hardware privacy?

Keycard Shell should improve sub-criteria rated PARTIAL or FAIL.

Self-sovereignty

How much control and ownership over your account does Keycard Shell give you?
Can you use the wallet without relying on its default provider for interacting with the L1 chain?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Ethereum's design goes to painstaking lengths to ensure that users can run an Ethereum L1 node on commodity consumer-grade hardware and residential Internet connections, and use it for interacting with L1.

Running your own node gives you several important benefits:

  • Privacy: Because the wallet can work directly on your own hardware with no outside dependencies, the wallet can query chain data without revealing private details (wallet address, IP address, etc.) to an external RPC provider.
  • Integrity: Relying on an external RPC provider means that this provider may return incorrect data about the state of the chain, tricking you into signing a transaction that ends up having a different effect than intended. Your own L1 node will verify the integrity of the chain, so such attacks cannot occur when using a self-hosted node.
  • Censorship resistance: Because an L1 node may broadcast transactions into a shared mempool directly to other nodes in the network, your transactions are not censorable by an external RPC provider that would otherwise act as an intermediary.
  • No downtime: Because the L1 node is running on your own hardware, you are not at risk of losing funds or opportunities due to downtime from an external RPC provider.

However, these advantages only matter if wallet users can actually take advantage of them. Thus, wallets must allow users to use a self-hosted node for these benefits to be realized in practice, and must not critically depend on external services to perform basic L1 interactions such as balance lookups and sending tokens.

How is L1 provider independence evaluated?

In order to qualify for this attribute, wallets must:

  • Allow the user to configure the L1 RPC endpoint to a self-hosted node before any request is made to that endpoint.
  • Support basic functions (account creation/import, balance lookups, token transfers) using nothing but the self-hosted node (no external services, no non-Ethereum-API calls), and whether
Are you locked into this wallet? Or can you permissionlessly import your Ethereum account into another wallet?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Question: What if a wallet's dev team walked away or turned evil one day?

One of Ethereum's core promises as an Internet upgrade is to avoid the possibility for user lock-in of web2. This is achieved by ensuring accounts are permissionlessly portable across wallets.

Ensuring that accounts remain portable avoids wallets becoming lock-in vectors in web3. Permissionless account portability also keeps the wallet ecosystem healthy through open competition.

How is account portability evaluated?

Wallets are rated based on whether accounts created within can be exported out of the wallet and imported into another, without requiring permission from the exporter wallet provider.

For EOA wallets based on private keys, this is relatively straightforward to determine. However, for more complex situations such as multisig wallets, Walletbeat considers whether such wallets can be made fully self-custodial, and whether assets and tokens can be permissionlessly transferred out of the wallet.

Specifically:

  • EOA wallets are rated based on the exportability of their private key material, and on whether such private key material is derived using the following standards:

    • BIP-39 for deriving a binary seed from a seed phrase.
    • BIP-32 for deterministic hierarchical key derivation from the binary seed.
    • BIP-44 as a standard when deriving hierarchical private keys.
  • MPC wallets are rated based on whether the user has a sufficient shares of the underlying key to have full control over the wallet in a self-custodial manner. Additionally, there must be a way for the user to generate a transaction (Walletbeat uses a token transfer out of the wallet as the litmus transaction for this) without reliance on an external API or proprietary application. The combination of these factors ensures that the wallet remains self-custodial and that the account cannot be frozen in-place due to an uncooperative external provider.

  • ERC-4337: Account Abstraction for smart contract wallets (smart contract wallets) are rated based on the level of control the user has over their account according to the smart contract's control logic that the wallet uses. The user must be in control of who controls their account by default, and be able to permissionlessly create asset transfer transactions.
    Specifically, the rating considers:

    • Whether the user has the ability to change the cryptographic keys used to control the account in general, in a manner that does not involve relying on an external provider or proprietary software.
    • Whether the smart contract wallet's default configuration starts out with the user having self-custody of their account, for example by having a majority of the key shares in self-custody in a multisig wallet.
    • Whether the generation of a token transfer transaction requires relying on an external provider or proprietary software, even if the user has self-custody of all requisite cryptographic keys to sign such a transaction.
  • EIP-7702: Account Abstraction via smart contract authority delegation are not yet rated on account portability and will show up as "Unrated".

If a wallet supports multiple types of accounts, the rating for the account type it supports that is least portable takes precedence. This makes the final rating act as an effective "floor" across the account types the wallet supports.

If a wallet supports multiple types of accounts and all of them have the same level of portability, the account type that takes precedence is the one that the wallet offers the user to create by default.

Can the wallet withdraw L2 funds to Ethereum L1 without relying on intermediaries?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

One of the core tenets of Ethereum is censorship resistance. This means that users must be able to reliably get transactions included onchain, without the ability for intermediaries to prevent this from happening.

This property is critical to ensure that all Ethereum participants are provided equal-opportunity, unfettered access to Ethereum, and to ensure that Ethereum is resilient to attackers that would want to prevent others from using Ethereum on such footing.

In order to uphold this property on Ethereum L2s, users must be able to force transactions to be included on L2 chains as well. Most L2s implement such functionality by allowing L2 transactions to be submitted on the L1, and enforcing that their sequencing logic must respect such L1 force-inclusion requests by including them on the L2 chain, typically within some fixed duration.

By verifying that the wallet supports L2 force-withdrawal transactions, this attribute verifies censorship resistance at both levels: L1 and L2.

How is transaction inclusion evaluated?

Wallets are rated based on whether users need to trust any intermediary in order to withdraw their funds from L2s.

This fundamentally requires two major features:

  • A wallet must support the creation of an L1 transaction which forces the L2 to withdraw user funds back to the L1. This message is typically posted as an L1 transaction which forces the L2 sequencing process to take it into account.
  • Since L2 force-withdrawal transactions require an L1 transaction, the wallet must also be able to get this transaction included without relying on an external service to broadcast this transaction for block inclusion. Therefore, the wallet must also support either participating in Ethereum's L1 gossip network, or (for environments that do not support this such as browser extension wallets) support broadcasting L1 transactions through a user's self-hosted Ethereum node.

With these two features in place, users can withdraw their L2 funds without trusting intermediaries.

Walletbeat currently only considers OP Stack chains and Arbitrum One for this evaluation, but more L2 chains may be added as support for force-withdrawal transaction becomes feasible for them.

Can the wallet developer take over your account without your consent?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

The promise of crypto is to make your accounts and your funds truly yours. This is what is most commonly referred to when discussing "self-sovereignty".

The underlying property that makes an account truly yours is the inability for anyone other than yourself to act on your behalf or to take over your account without prior consent.

How is account unruggability evaluated?

Wallets are evaluated based on whether there is any mechanism by which any entity other than the user may sign or approve transactions on behalf of the user's account, or can transfer ownership of the account away from the user. This includes features like seed phrase backups where the wallet developer gets to learn the user's seed phrase, or other account recovery features that let the wallet developer unilaterally recover the user's account.

Fully-custodial wallets (i.e. wallets where the signing key material resides entirely on external services) are also not self-sovereign (aka ruggable) by definition.

Features that allow the user to pre-approve certain types of transactions ahead of time are treated as maintaining self-sovereignty, so long as the user controls their limits explicitly: time-bound, amount-bound, destination/purpose-bound, etc.


Transparency

How transparent and sustainable is Keycard Shell's development model?
Does the user have the ability to avoid lock-in and freely audit, modify, and redistribute the wallet's source code?
PASS
  • Keycard Shell is licensed under the MIT license, a Free & Open-Source (FOSS) license.

Why does this matter?

Free & Open Source Software (FOSS) licensing allows a software project's source code to be freely used, modified and distributed. This allows better collaboration, more transparency into the software development practices that go into the project, and allows security researchers to more easily identify and report security vulnerabilities. In short, it turns software projects into public goods.

How is source code license evaluated?

Wallets are assessed based whether the license of their source code meets the Open Source Initiative's definition of open source.

Is the source code for the wallet visible to the public?
PASS
  • The source code for Keycard Shell is publicly viewable.

This allows its source code to be examined for security flaws and for Walletbeat to review how the wallet works.

Why does this matter?

When using a wallet, users are entrusting it to preserve their funds safely. This requires a high level of trust in the wallet's source code and in the wallet's development team. By making the wallet's source code visible to the public, its source code can be more easily inspected for security vulnerabilities and for potential malicious code. This improves the wallet's security and trustworthiness.

How is source visibility evaluated?

Wallets are assessed based on whether or not their source code is publicly visible, irrespective of the license of the source code.
How is the wallet's development team funded?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Wallets are complex, high-stakes pieces of software. They must be maintained, regularly audited, and follow the continuous improvements in the ecosystem. This requires a reliable, transparent source of funding.

How is funding evaluated?

Wallets are assessed based on how sustainable, transparent, and user-aligned their funding mechanisms are.

Wallets are typically funded by one or more of the following methods:

  • Self-funding from developers
  • Seeking donations from users
  • Seeking grants from foundations
  • Venture capital funding
  • Charging fees on convenience functions (e.g. swapping and bridging tokens)
  • Governance tokens
  • Commemorative NFT sales

Walletbeat looks at each funding source of funding and verifies whether it is done transparently and in a user-aligned manner. In this context, "user alignment" refers to whether a source of funding grows as a function of the user's own goals, rather than being uncorrelated or anti-correlated. For example, funding acquired through hidden swap fees or governance token sales with undisclosed insider token allocations are not user-aligned. Funding acquired through transparent swap fees, user donations, or ecosystem grants are user-aligned.

In order to pass this criterion, wallets must have at least one source of funding, and all of their sources of funding must be transparent to users. Additionally, if the wallet is funded from multiple sources and some of these sources are not user-aligned, the public must be able to determine the proportion of each such funding source to the wallet's overall revenue. Depending on the funding mechanism, this can be done through publication of a revenue breakdown page, public regulatory filings, or token allocation and vesting disclosures.

Does the wallet clearly display all transaction fees and their purpose?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Fee transparency is crucial for users to understand the full cost of their transactions. Without clear fee information, users may be surprised by high transaction costs or hidden fees charged by the wallet.

Transparent fee disclosure helps users make informed decisions about when to transact and which wallet to use. It also builds trust between users and wallet providers by ensuring that all costs are clearly communicated upfront.

How is a wallet's fee transparency evaluated?

Wallets are evaluated based on how transparently they display transaction fees and transaction purposes to users.

A wallet receives a passing rating if it provides comprehensive fee information, including detailed breakdowns of network fees, clear disclosure of any additional wallet fees. Fees may be aggregated down to one number, but a breakdown must be available to the user within a single click.

A wallet receives a partial rating if it provides an aggregate fee but does not let the user get a detailed breakdown.

A wallet fails this attribute if it provides minimal or no fee information before transaction confirmation.

Various transaction types are tested: Ether and ERC-20 transfers on L1, built-in swaps or bridging transactions, DeFi transactions, private transactions if supported. If a wallet displays fees differently depending on the type of transaction, the transaction type with the least clear display level is taken into consideration for the purpose of this attribute.

Does Keycard Shell have a strong reputation for reliability and transparency?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

A manufacturer's reputation reflects its track record in product design, long-term availability and support, handling of vulnerabilities, and engagement with the security community. A strong reputation builds user trust in the reliability and security of the hardware wallet.

How is a wallet's reputation evaluated?

Evaluated based on an aggregate of factors:

  • Product Originality: Degree of original design versus reliance on not-in-house components.

  • Availability & Support: History of product availability, risk of discontinuation, and perceived ability to honor warranty/support.

  • Vulnerability History: Track record of security vulnerabilities, their severity, and the transparency/quality of documentation and fixes.

  • Bug Bounty Program: Scope and rewards of the manufacturer's bug bounty program compared to industry standards.


Ecosystem

How well does Keycard Shell align with the ecosystem?
Is the wallet Account Abstraction ready?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

User experience on Ethereum has historically suffered from the limitations of Externally-Owned Accounts (EOAs), which is the type of account most Ethereum users use today. By contrast, smart wallet accounts offer many UX and security improvements, such as the ability to:

  • Batch multiple transactions, removing the need for separate "token approval" transactions before every other token operation.
  • Pay gas fees in other tokens than Ether, or support sponsored transaction fees (with ERC-4337: Account Abstraction for smart contract wallets)
  • Delegate some operation to trusted provider, such as allowing onchain games to withdraw small amounts of tokens without signing pop-ups for each and every transaction.
  • Change transaction authorization logic, enabling the use of Passkeys (and cellphone authentication methods) for signing transactions.
  • Update the set of keys used to control the wallet, enabling the switch to quantum-resistant encryption algorithms in the future.
  • Define account recovery rules, reducing the risk of losing access to your account when losing a private key or a device.

However, smart wallet accounts have historically been an all-or-nothing, wallet-specific proposition for users. There was no transition path to such wallets.

As part of the Pectra upgrade, EIP-7702: Account Abstraction via smart contract authority delegation fixes this problem. It create a clean path for existing EOAs to obtain all the UX benefits of smart wallet accounts and account abstraction, without the need for users to switch to a different account address. This represents a large User Experience upgrade for all Ethereum EOA users.

How is account abstraction support evaluated?

Wallets are rated based on whether they make use of EIP-7702: Account Abstraction via smart contract authority delegation transactions (for EOA or MPC wallets), or if they support ERC-4337: Account Abstraction for smart contract wallets transactions (for smart contract wallets).

The user experience benefits of these enhancements are still in-flight and are expected to develop as these standards mature and are built on top of. As such, Walletbeat does not currently consider which improvements wallets provide for their users as a result of these new capabilities. However, it is expected that a future version of this attribute would look at such improvements. For example: to verify that users are able to update the signing authority of their wallets to a quantum-safe signature scheme.

Can you send funds to human-readable Ethereum addresses?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Ethereum addresses are hexadecimal strings (0x...) which are unreadable to humans. Phishing scams and exploits have used this to trick users into sending funds to invalid addresses, for example by generating lookalike-addresses and tricking users into copy/pasting them without noticing the difference.

Additionally, Ethereum's transition to layer 2 chains has changed user needs when sending funds. The hexadecimal address isn't sufficient anymore; the user needs to ensure that they are sending funds to the correct hexadecimal address on the correct chain, increasing the potential for mistakenly sending funds to the wrong place or the wrong chain.

Address naming registries like ENS partially solve this problem by allowing more human-readable names like username.eth to be automatically turned into the hexadecimal address. This is easier to share and to accurately transfer by humans. Additionally, some address format standards improve upon this further by including the destination chain information as part of the address itself. Such standards include:

Wallets that support either of these standards are able to automatically determine the destination address and chain from a human-readable string, and can bridge funds across chains as appropriate. This improves the user experience of Ethereum and its layer 2 ecosystem while reducing the potential for mistakes when sending funds.

How is address resolution evaluated?

Wallets are rated based on the types of addresses they support sending funds to.

Specifically, Walletbeat recognizes the following destination address formats. Wallets must be able to resolve at least one of them to fulfill this attribute:

Additionally, the mechanism used to perform the resolution must either:

  • Be done using onchain data and reusing the wallet's common chain interaction client, inheriting its verifiability (e.g. via light client) and privacy properties.
  • OR be done using an offchain external provider in such a way that the address returned by the external provider is verifiable, and without revealing the user's IP address to the provider. This ensures that:
    • The wallet cannot be tricked into sending funds to an attacker compromising the offchain provider's responses
    • The provider may not progressively learn the user's contacts list by associating its successive resolution queries by IP over time.

For addresses that require an offchain lookup (e.g. ENS names using offchain resolvers with CCIP-Read), only the portion of the work necessary to arrive at the conclusion that an offchain lookup is necessary is considered. In other words, wallets must verify that the CCIP-Read OffchainLookup details are as claimed and then perform the CCIP-Read themselves, rather than trust an offchain provider to do so on their behalf.

Does Keycard Shell work well with independent wallets and avoid supplier linkage?
PASS
  • Keycard Shell interoperability evaluation is pass.

Why does this matter?

Interoperability ensures the wallet can be used with independent wallets and does not leak identifying metadata to the supplier.

How is a wallet's interoperability evaluated?

Evaluated based on independent wallet compatibility and supplier independence.

What can Keycard Shell do to improve its interoperability?

Keycard Shell should improve sub-criteria rated PARTIAL or FAIL.
Can the hardware wallet connect to web3 applications?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Sources (3)
  • keycard.tech
    Blog announces ERC-4527 + BC-UR support; lists MetaMask, Rabby, imToken, Bitget, UniSat, Nunchuk, Sparrow, Specter

  • keycard.tech
    Compatible wallets list page

  • get.keycard.tech
    Marketing page lists transaction signing with MetaMask, imToken, Rabby, Bitget, UniSat, Nunchuk, Sparrow, Specter

Why does this matter?

The ability to connect to web3 applications is crucial for hardware wallet users who want to interact with DeFi protocols, NFT marketplaces, and other Web3 services while maintaining the security of their private keys on a hardware device.

Hardware wallets must maintain an air gap for security while still enabling complex interactions. Connection methods significantly impact security and user experience.

Wallets with only proprietary closed-source solutions force vendor lock-in and trust in unverifiable software. Supporting standard protocols or popular wallet integrations offers users more choice and transparency.

How is a hardware wallet's app connection support evaluated?

Hardware wallets are evaluated based on the reliability, openness, and breadth of their best app connection method.

A wallet receives a passing rating if it can connect to any app using verifiable code or open standards.

A wallet receives a partial rating if it can connect to apps but requires trusting unverifiable code (proprietary closed-source), or if it can only connect to some apps even when using verifiable code or open standards.

A hardware wallet fails this attribute if it cannot connect to apps at all, severely limiting its utility.


Maintenance

How well-maintained is Keycard Shell?
🛠️ Maintenance🛠️ Maintenance [❔ UNRATED]
Does Keycard Shell have good maintenance practices?
UNRATED
  • Walletbeat's database does not have the necessary information on Keycard Shell to assess this question. Please help us by contributing your knowledge on our GitHub repository!

Why does this matter?

Good maintenance practices ensure the long-term usability, reliability, and physical durability of a hardware wallet. This includes the device's resistance to physical damage, the availability of repair information and parts, battery longevity and replaceability, and the manufacturer's warranty policy.

How is a wallet's maintenance evaluated?

Evaluated based on:

  • Physical Durability: Resistance to drops and environmental factors.

  • MTBF Documentation: Availability and reliability of Mean Time Between Failures data.

  • Repairability: Ease of repair, availability of parts and documentation, and potential security implications of repairs.

  • Battery: Presence, replaceability, and device functionality if the battery dies.

  • Warranty: Length of warranty period, coverage limitations, and possibility of extension.