Skip to main content
POST
/
sdk
/
{environmentId}
/
waas
/
{walletId}
/
signMessage
Sign a message with a WAAS wallet
curl --request POST \
  --url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/waas/{walletId}/signMessage \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "message": "<string>",
  "isFormatted": true,
  "roomId": "<string>",
  "context": {
    "evmUserOperation": {
      "chainId": 123,
      "entryPoint": "<string>",
      "operation": {
        "authorization": {
          "address": "<string>",
          "chainId": 123,
          "nonce": 123,
          "r": "<string>",
          "s": "<string>",
          "v": "<string>",
          "yParity": 123
        },
        "callData": "<string>",
        "callGasLimit": "<string>",
        "factory": "<string>",
        "factoryData": "<string>",
        "maxFeePerGas": "<string>",
        "maxPriorityFeePerGas": "<string>",
        "nonce": "<string>",
        "paymaster": "<string>",
        "paymasterData": "<string>",
        "paymasterPostOpGasLimit": "<string>",
        "paymasterVerificationGasLimit": "<string>",
        "preVerificationGas": "<string>",
        "sender": "<string>",
        "signature": "<string>",
        "verificationGasLimit": "<string>"
      }
    },
    "evmMessage": "<string>",
    "svmMessage": "<string>",
    "suiMessage": "<string>",
    "stellarMessage": "<string>",
    "domain": "https://app.xyz.com"
  },
  "bitcoinConfig": {
    "addressType": "<string>",
    "network": "<string>"
  },
  "shareSetId": "95b11417-f18f-457f-8804-68e361f9164f"
}
'
{
  "roomId": "<string>",
  "serverKeygenIds": [
    "<string>"
  ],
  "newServerKeygenIds": [
    "<string>"
  ],
  "walletId": "95b11417-f18f-457f-8804-68e361f9164f"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

environmentId
string
required

ID of the environment

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

walletId
string
required

UUID of the wallet

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

Body

application/json

Sign Message Request

message
string
required

A string with a max length of 204800 characters

Maximum string length: 204800
isFormatted
boolean

When true, message is treated as a pre-computed 32-byte hash (64 hex characters, optionally with a leading 0x) and signed by the MPC server as-is ("raw signing"). When false or omitted, the SDK hashes the message bytes using the chain's standard algorithm (e.g. keccak256 for EVM).

roomId
string

MPC room identifier for the signing session

context
object
bitcoinConfig
object
shareSetId
string

Optional identifier of the share set this operation targets. When omitted, the active rootUser share set for walletId is resolved server-side (backwards-compat fallback for older SDKs).

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

Response

Successfully created a room for signing message ceremony

roomId
string
required

Unique identifier of the opened MPC room

serverKeygenIds
string[]

List of existing server-side key generation identifiers

A base58 string with a max length of 100 characters

Maximum string length: 100
Pattern: ^[1-9A-HJ-NP-Za-km-z]+$
newServerKeygenIds
string[]

List of newly generated server-side key generation identifiers

A base58 string with a max length of 100 characters

Maximum string length: 100
Pattern: ^[1-9A-HJ-NP-Za-km-z]+$
walletId
string
Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"