Overview
Sign messages to prove wallet ownership for authentication and verification without transactions.
Prerequisites
Sign a Message
Common Use Cases
Authentication
Signing User Actions
Off-Chain Signatures
Proof of Ownership
Verify Signatures
While signature verification typically happens on the backend or smart contract, here’s how to structure the verification data:
Backend Verification Example
Best Practices
- Always handle errors gracefully
- Include clear context in messages (nonce, timestamp, purpose)
- Show loading states while waiting for signature
- Clear sensitive data when done
- Validate message format (not empty, reasonable length)
- Never sign messages you don’t understand
Error Handling
User Consent Dialog
Troubleshooting
User rejection: Add clear explanation of why signing is needed (proves ownership, free, no transaction)
Unsupported wallet: Check if wallet supports signing before requesting
What’s Next
Last modified on February 3, 2026