WDK logoWDK documentation
SolanaGasless SolanaGuides

Sign and Verify Messages

Sign and verify messages with Solana gasless accounts.

Owned gasless Solana accounts delegate message signing and verification to the wrapped Solana account.

Sign a Message

Use sign(message) to create an Ed25519 signature:

Sign message
const message = 'Hello, Solana!'
const signature = await account.sign(message)

console.log('Signature:', signature)

Verify a Signature

Use verify(message, signature) to check whether a signature matches the account address:

Verify signature
const isValid = await account.verify(message, signature)
console.log('Signature valid:', isValid)

Verify from a Read-Only Account

Read-only accounts can verify signatures without access to the private key:

Verify with read-only account
import { WalletAccountReadOnlySolanaGasless } from '@tetherto/wdk-wallet-solana-gasless'

const readOnlyAccount = new WalletAccountReadOnlySolanaGasless('SolanaAddress...', {
  provider: 'https://api.devnet.solana.com',
  paymasterUrl: 'https://your-kora-paymaster.example',
  paymasterAddress: 'Paymaster111111111111111111111111111111111',
  paymasterToken: {
    address: 'TokenMint111111111111111111111111111111111'
  }
})

const isValid = await readOnlyAccount.verify(message, signature)

Next Steps

For paymaster and cleanup failures, see Handle Errors.

On this page