Skip to main content

Overview

Sign messages to prove wallet ownership for authentication without transaction fees.

Prerequisites

Sign a Message

Common Use Cases

Authentication

Sign User Actions

Proof of Ownership

Off-Chain Signatures

Verify Signatures

While signature verification typically happens on the backend, here’s how to structure the verification data:

Best Practices

  • Always handle errors gracefully
  • Include clear context in messages (wallet address, nonce, timestamp, purpose)
  • Show loading states while waiting for signature
  • Clear sensitive data when done
  • Validate message format (not empty, reasonable length)
  • Explain that signing is free and doesn’t create transactions

Error Handling

Signature Explanation UI

Troubleshooting

User rejection: Explain why signing is needed (verifies ownership, free, no transaction, private key stays secure) Unsupported wallet: Check if wallet supports signing before requesting Long messages: Warn users to review carefully if message exceeds 500 characters

Security Considerations

  • Never sign messages you don’t understand
  • Always display message content clearly before signing
  • Malicious signatures could be used to impersonate you

What’s Next

Last modified on February 3, 2026