---
updatedAt: 2025-07-26T15:18:19.000Z
agentTools:
  projectIndex: https://docs.metakeep.xyz/llms.txt
---

# Sign Message

/v2/app/sign/message

Signs developer messages on EVM(follows [eth\_sign](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign) specification), Solana, and EOS.

For signing users' messages, use the [MetaKeep SDK](https://docs.metakeep.xyz/reference/sdk-101).

> 📘 Signing opaque binary data is not supported.
>
> For security reasons, this API only supports signing human-readable UTF-8 strings. It is not intended for signing opaque binary data since then it can be used to sign an arbitrary hash, which means it can be used to sign transactions, or any other data, making it a dangerous phishing risk.
>
> Use transaction signing for signing transaction data or typed data signing for signing generic data objects.

> 🚧 Api Error Status
>
> You can find the error status returned by the API [here](https://docs.metakeep.xyz/reference/api-error-status#v2appsignmessage).

© Copyright 2024, Passbird Research Inc.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "production",
    "version": "3.4"
  },
  "servers": [
    {
      "url": "https://api.metakeep.xyz/"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/v2/app/sign/message": {
      "post": {
        "summary": "Sign Message",
        "description": "/v2/app/sign/message",
        "operationId": "v2apptransactionsignmessage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "message",
                  "reason"
                ],
                "properties": {
                  "message": {
                    "type": "string",
                    "description": "The user friendly message that needs to be signed. ex: \"I agree with the terms and conditions\"."
                  },
                  "reason": {
                    "type": "string",
                    "description": "The human readable explanation for this transaction. Useful for presenting to the user as an extra information ex: \"Swap wBTC to USDC\", and for auditing purposes."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "EVM Response": {
                    "value": "{\n  \"status\": \"SUCCESS\",\n  \"signature\": \"0x23822278aeb03a90c3ae92304ef5f0c652d1300836bdd52827c7fb227ccb3e465aba54dffbf59c61a84e96cc0ff3db9e257e07068c54543af94db96798c6e7d31c\",\n  \"r\": \"0x23822278aeb03a90c3ae92304ef5f0c652d1300836bdd52827c7fb227ccb3e46\",\n  \"s\": \"0x5aba54dffbf59c61a84e96cc0ff3db9e257e07068c54543af94db96798c6e7d3\",\n  \"v\": \"0x1c\"\n}"
                  },
                  "Solana Response": {
                    "value": "{\n  \"status\": \"SUCCESS\",\n  \"signature\": \"0xdce347f5e207a9563ab27108e27ece635ba511aa48a30b2d33fb148fcc7620adaa22ca5cfe32ad22e668859ce0490aae7a86f47f9f2002e92dc3d772cecd590d\"\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "EVM Response",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "example": "SUCCESS"
                        },
                        "signature": {
                          "type": "string",
                          "example": "0x23822278aeb03a90c3ae92304ef5f0c652d1300836bdd52827c7fb227ccb3e465aba54dffbf59c61a84e96cc0ff3db9e257e07068c54543af94db96798c6e7d31c"
                        },
                        "r": {
                          "type": "string",
                          "example": "0x23822278aeb03a90c3ae92304ef5f0c652d1300836bdd52827c7fb227ccb3e46"
                        },
                        "s": {
                          "type": "string",
                          "example": "0x5aba54dffbf59c61a84e96cc0ff3db9e257e07068c54543af94db96798c6e7d3"
                        },
                        "v": {
                          "type": "string",
                          "example": "0x1c"
                        }
                      }
                    },
                    {
                      "title": "Solana Response",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "example": "SUCCESS"
                        },
                        "signature": {
                          "type": "string",
                          "example": "0xdce347f5e207a9563ab27108e27ece635ba511aa48a30b2d33fb148fcc7620adaa22ca5cfe32ad22e668859ce0490aae7a86f47f9f2002e92dc3d772cecd590d"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```