diff --git a/Runtime/codebase/IWalletBase.cs b/Runtime/codebase/IWalletBase.cs
index c63d8b6a..83f04d99 100644
--- a/Runtime/codebase/IWalletBase.cs
+++ b/Runtime/codebase/IWalletBase.cs
@@ -105,6 +105,13 @@ public interface IWalletBase
///
Task SignMessage(byte[] message);
+ ///
+ /// Sign a UTF-8 encoded string message
+ ///
+ /// The string message to sign
+ /// The signature bytes
+ Task SignMessage(string message);
+
///
/// Sign and send a transaction
///
diff --git a/Runtime/codebase/WalletBase.cs b/Runtime/codebase/WalletBase.cs
index ab7835a3..a6b819f9 100644
--- a/Runtime/codebase/WalletBase.cs
+++ b/Runtime/codebase/WalletBase.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Text;
using System.Linq;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
@@ -264,6 +265,16 @@ public virtual async Task> SignAndSendTransaction
///
public abstract Task SignMessage(byte[] message);
+ ///
+ /// Sign a UTF-8 encoded string message
+ ///
+ /// The string message to sign
+ /// The signature bytes
+ public Task SignMessage(string message)
+ {
+ return SignMessage(Encoding.UTF8.GetBytes(message));
+ }
+
///
/// Airdrop sol on wallet
///