---
title: "Sign a message with a waas account"
method: POST
path: "/sdk/{environmentId}/waas/{walletId}/signMessage"
tags: ["SDK"]
---

# Sign a message with a waas account

`POST /sdk/{environmentId}/waas/{walletId}/signMessage`

## Path parameters

- `environmentId` string, required
- `walletId` string, required

## Request body

- SignMessageWithWaasRequest
  - `message` string, required — A string with a max length of 16384 characters
  - `isFormatted` boolean
  - `roomId` string
  - `context` SignMessageContext
    - `evmTransaction` SignMessageEvmTransaction — Standard EVM transaction
      - `to` string, required — Recipient address
      - `chainId` number, required — Chain ID
      - `data` string — Transaction data as hex string
      - `gas` string — Gas limit as hex string
      - `gasPrice` string — Gas price as hex string
      - `maxFeePerGas` string — Maximum fee per gas as hex string
      - `maxPriorityFeePerGas` string — Maximum priority fee per gas as hex string
      - `nonce` number — Transaction nonce
      - `value` string — Transaction value as hex string
    - `evmUserOperation` SignMessageEvmUserOperation — User Operation (ERC-4337)
      - `chainId` number — Chain identifier needed for user operation hash calculation
      - `entryPoint` string — Address of the entry point contract
      - `operation` SignMessageUserOperationData — The actual user operation data
        - `authorization` SignMessageAuthorizationSignature — Authorization signature data (optional)
          - `address` string — Address that signed the authorization
          - `chainId` number — Chain ID for the authorization signature
          - `nonce` number — Nonce used in the authorization signature
          - `r` string — R component of the ECDSA signature
          - `s` string — S component of the ECDSA signature
          - `v` string — V component of the ECDSA signature
          - `yParity` number — Y parity of the signature (0 or 1)
        - `callData` string — The data to pass to the sender during the main execution call
        - `callGasLimit` string — The amount of gas to allocate the main execution call
        - `factory` string — Account factory address (optional, only for new accounts)
        - `factoryData` string — Data for account factory (optional)
        - `maxFeePerGas` string — Maximum fee per gas
        - `maxPriorityFeePerGas` string — Maximum priority fee per gas
        - `nonce` string — Anti-replay parameter
        - `paymaster` string — Address of paymaster contract (optional)
        - `paymasterData` string — Data for paymaster (optional)
        - `paymasterPostOpGasLimit` string — The amount of gas to allocate for the paymaster post-operation code (optional)
        - `paymasterVerificationGasLimit` string — The amount of gas to allocate for the paymaster validation code (optional)
        - `preVerificationGas` string — Extra gas to pay the Bundler
        - `sender` string — The account making the operation
        - `signature` string — Data passed into the account to verify authorization
        - `verificationGasLimit` string — The amount of gas to allocate for the verification step
    - `svmTransaction` SignMessageSvmTransaction — Solana serialized transactions
      - `chainId` string, required — Chain identifier
      - `method` string, required — Method identifier
      - `serializedTransactions` string[], required — Array of serialized transaction strings
    - `suiTransaction` SignMessageSuiTransaction — Sui BCS serialized transaction as hex string
      - `chainId` string, required
      - `serializedTransaction` string, required — A string with a max length of 16384 characters
    - `eip7702Auth` SignMessageEip7702Auth — EIP-7702 auth
      - `address` string, required — Address that signed the authorization
      - `chainId` number, required — Chain ID
      - `nonce` number, required — Nonce
    - `evmMessage` union — EVM message that can be either a plain string or an object with raw hex data
      - string
      - object
        - `raw` string, required — Raw hex data
    - `svmMessage` string — A string with a max length of 16384 characters
    - `suiMessage` string — A string with a max length of 16384 characters
    - `evmTypedData` SignMessageEvmTypedData — EIP-712 typed data payload
      - `domain` Eip712Domain, required
        - `name` string
        - `version` string
        - `chainId` number
        - `verifyingContract` string — Valid blockchain wallet address, must be an alphanumeric string without any special characters
      - `message` object, required — Typed data message object
      - `primaryType` string, required
      - `types` Eip712Types, required
    - `domain` string
  - `bitcoinConfig` WalletBitcoinConfig
    - `addressType` string
    - `network` string

## Response `200`

Successfully created a room for signing message ceremony

- OpenRoomResponse
  - `roomId` string, required
  - `serverKeygenIds` NonEmptyBase58StringWith100MaxLength[]
  - `newServerKeygenIds` NonEmptyBase58StringWith100MaxLength[]
  - `walletId` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/dynamic/apis/dashboard-api.md) · [All operations](https://skmtc.net/dynamic/apis/dashboard-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dynamic/dashboard-api/versions/aac826315d90/schema)
