fundsheetby Mintward

How to prove you own a crypto wallet

Updated:

Sign a plain-text message with the wallet's key, then share three things: the address, the exact message and the signature. Anyone can check the signature without your private key, and no funds move. If your wallet cannot sign messages, the common alternative is a small test transfer of an amount set by the party asking.

Why you may be asked

Banks and exchanges reviewing your source of funds often want to know that the wallet in your paper trail is yours. Coinbase, for example, says it may request additional information to verify that you control a self-custody wallet.

In the EU there is also a legal rule. Regulation (EU) 2023/1113, the Transfer of Funds Regulation, applies from 30 December 2024. For a transfer of more than EUR 1,000 to a self-hosted address, the crypto-asset service provider of the sender "shall take adequate measures to assess whether that address is owned or controlled by the originator" (Article 14(5)). Article 16(2) sets the same duty for the receiving provider when more than EUR 1,000 arrives from a self-hosted address.

The European Banking Authority's Travel Rule Guidelines (EBA/GL/2024/11, paragraph 83) list the methods a provider should use, at least one of:

Where one method is not reliable enough on its own, providers should combine them (paragraph 85). Once satisfied, a provider may whitelist the address for later transfers (paragraph 86).

Ethereum and EVM chains: EIP-191 personal_sign

On Ethereum and EVM chains, wallets sign plain-text messages with the personal_sign method, defined as version 0x45 in EIP-191 (status: Final). The signed data starts with the prefix "Ethereum Signed Message" and the message length, followed by your text. EIP-191 states that data signed this way "can never be an Ethereum transaction". Signing it does not authorize a transfer.

How to do it:

  1. Open your wallet's "sign message" feature, or a page that requests a signature, such as the Sign Message option on Etherscan's Verified Signatures page.
  2. Paste your message. Check that the wallet shows the same readable text.
  3. Approve. Copy the signature, a long hex string starting with 0x.

If your address is a smart contract wallet rather than a normal key-based account, signatures are checked differently (ERC-1271, as noted in EIP-4361), and not every verification tool supports this.

Bitcoin: signmessage, BIP-137 and BIP-322

Bitcoin has more than one message signing format, and which one works depends on your address type.

In practice: sign with your wallet's "sign message" feature, note which format it used, and ask the verifier which formats it accepts.

How someone checks a signature

For EVM addresses, Etherscan's Verified Signatures page at etherscan.io/verifiedSignatures has a Verify Signature option. Enter the address, the message and the signature hash. Choose "Signature Verification only (not published)" unless you want the signature on a public URL; the other option, "Verify & publish", makes it public.

For Bitcoin, the verifier uses a tool that supports your signature format, for example verifymessage in Bitcoin Core for legacy addresses.

Write a message that proves something specific

A good message ties the address to you, to a recipient and to a date, so it cannot be reused elsewhere. For example:

"I, Jane Doe, control the address 0x1234...abcd. This statement is for Example Bank, reference 55-123, on 7 November 2026."

Use the exact address, and copy the message character for character when you send it. One changed space makes the check fail.

Satoshi test as an alternative

If signing is not possible, the EBA guidelines list a test transfer: a predefined small amount, set by the provider, sent from and to the self-hosted address to the provider's account. It costs a network fee. Only make a test transfer when the request appears inside your account on the provider's official site.

What not to do: checklist

Proof of control is usually one part of a larger file. See what to send when your bank asks for source of funds, documents for an exchange account on hold and crypto as a mortgage deposit.

How Fundsheet helps

Fundsheet lets you prove control of an EVM address by signing a plain-text message in your wallet with personal_sign (EIP-191); it authorizes no transaction. For Bitcoin, you can paste a signed message. The proof goes into a bank-style wallet statement PDF built from public blockchain data, with every transfer, its value at the time, and a report ID, SHA-256 hash and verification page. It is a factual record, not a legal opinion; the bank or exchange decides. Start at fundsheet.mintward.xyz.

This guide is general information, not legal or tax advice. Ask your bank or exchange which documents and signature formats it accepts.

Sources

  1. Regulation (EU) 2023/1113 on information accompanying transfers of funds and certain crypto-assets (EUR-Lex)
  2. Travel Rule Guidelines, EBA/GL/2024/11 (European Banking Authority)
  3. EIP-191: Signed Data Standard (Ethereum Improvement Proposals)
  4. EIP-4361: Sign-In with Ethereum (Ethereum Improvement Proposals)
  5. BIP-137: Signatures of Messages using Private Keys (Bitcoin BIPs, GitHub)
  6. BIP-322: Generic Signed Message Format (Bitcoin BIPs, GitHub)
  7. signmessage RPC and verifymessage RPC (Bitcoin Developer Documentation)
  8. Verified Signatures (Etherscan)
  9. Provide information for an account review (Coinbase Help)
  10. Responding to a request for additional information (Kraken Support)

More guides