Skip to Content
Connect to Software

Signing

Learn how to sign messages for authentication.


Sign Personal Message

Sign arbitrary messages for authentication:

const message = new TextEncoder().encode('Hello, Sui!') const result = await provider.signPersonalMessage({ message, }) console.log({ signature: result.signature, // Base64 encoded signature bytes: result.bytes, // Signed message bytes })

Sign Message (Legacy)

const message = new TextEncoder().encode('Hello, Sui!') const result = await provider.signMessage({ message, }) console.log({ signature: result.signature, messageBytes: result.messageBytes, })

Verify Signature

import { verifyPersonalMessage } from '@mysten/sui.js/verify' const message = new TextEncoder().encode('Hello, Sui!') const { signature } = await provider.signPersonalMessage({ message }) const accounts = await provider.getAccounts() const publicKey = accounts[0].publicKey const isValid = await verifyPersonalMessage(message, signature) console.log('Signature valid:', isValid)

Error Handling

try { await provider.requestPermissions() } catch (error) { if (error.code === 4001) { console.log('User rejected the connection request') } else { console.error('Connection error:', error.message) } }

Common Error Codes

CodeDescription
4001User rejected request
4100Unauthorized
-32603Internal error
Last updated on