# Sign message

Sign arbitrary messages using your Openfort Solana embedded wallet. Openfort uses Ed25519 for Solana wallets, which signs raw message bytes — pass `{ hashMessage: false }` to disable the default keccak256 hashing used for EVM signatures.

```tsx [SignSolanaMessage.tsx]
import { useSolanaEmbeddedWallet } from '@openfort/react/solana'

function SignSolanaMessage() {
  const solana = useSolanaEmbeddedWallet()

  const handleSignMessage = async () => {
    if (solana.status !== 'connected') return

    const message = new TextEncoder().encode('Hello from Openfort!')
    // hashMessage: false is required for Solana Ed25519 signatures
    const signature = await solana.provider.signMessage(message, {
      hashMessage: false,
    })
    console.log('Signature:', signature)
  }

  return (
    <button
      onClick={handleSignMessage}
      disabled={solana.status !== 'connected'}
    >
      Sign Message
    </button>
  )
}
```

:::info
When signing for Solana, always pass `{ hashMessage: false }`. Openfort uses Ed25519 for Solana wallets, which expects raw message bytes rather than the keccak256 hash used for EVM signatures.
:::
