Skip to main content

Overview

This guide shows you how to sign messages with your Solana wallet. The Python SDK signs messages using Ed25519 and returns a base58-encoded signature.

Prerequisites

Basic Message Signing

The returned signature is a base58-encoded Ed25519 signature (64 bytes).

Signing with a Password-Protected Wallet

Password handling:
  • If your wallet was created without a password, omit the password parameter.
  • If your wallet was created with a password, you must provide it for all signing operations.
Passing password= also enables auto-recovery of the local key share in fresh processes — pair it with client.load_wallet(address) after restart.

Verifying a Signature

Verify signatures off-chain using PyNaCl:

Common Use Cases

Authentication Nonce

Next Steps

Last modified on May 5, 2026