> ## Documentation Index
> Fetch the complete documentation index at: https://second.tech/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Sign a message

> Signs an arbitrary message with a BIP-340 Schnorr signature over a prefixed hash (`SHA256("bark/message" || message)`) of the UTF-8 message bytes. The message is signed with the key of the given Ark address, which must be one of the wallet's own addresses; addresses that do not belong to the wallet are rejected. The resulting signature can be checked with the `/message/verify` endpoint.



## OpenAPI

````yaml https://gitlab.com/ark-bitcoin/bark/-/raw/master/bark-rest/openapi.json post /api/v1/message/sign
openapi: 3.1.0
info:
  title: barkd REST API
  description: >-
    A simple REST API for barkd, a wallet daemon for integrating bitcoin
    payments into your app over HTTP. Supports self-custodial Lightning, Ark,
    and on-chain out of the box.


    barkd is a long-running daemon best suited for always-on or
    high-connectivity environments like nodes, servers, desktops, and
    point-of-sale terminals.


    All endpoints return JSON. Amounts are denominated in satoshis.
  contact:
    name: Second Team
    email: hello@second.tech
  license:
    name: MIT
    identifier: MIT
  version: 0.6.0
servers: []
security:
  - bearer: []
tags:
  - name: boards
    description: Move on-chain bitcoin onto the Ark protocol.
  - name: exits
    description: Move bitcoin back on-chain without server cooperation.
  - name: fees
    description: Estimate fees for wallet operations before executing them.
  - name: history
    description: Inspect and annotate wallet movement history.
  - name: lightning
    description: Create Lightning invoices and track receives.
  - name: message
    description: Sign arbitrary messages with the wallet's keys and verify signed messages.
  - name: onchain
    description: Manage barkd's on-chain bitcoin wallet.
  - name: wallet
    description: Manage Ark balances and VTXOs, send payments via Ark, LN, and on-chain.
  - name: bitcoin
    description: Query bitcoin network data.
  - name: notifications
    description: Receive real-time notifications from barkd.
paths:
  /api/v1/message/sign:
    post:
      tags:
        - message
      summary: Sign a message
      description: >-
        Signs an arbitrary message with a BIP-340 Schnorr signature over a
        prefixed hash (`SHA256("bark/message" || message)`) of the UTF-8 message
        bytes. The message is signed with the key of the given Ark address,
        which must be one of the wallet's own addresses; addresses that do not
        belong to the wallet are rejected. The resulting signature can be
        checked with the `/message/verify` endpoint.
      operationId: sign_message
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignMessageRequest'
        required: true
      responses:
        '200':
          description: Returns the signature over the message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignedMessage'
        '400':
          description: Invalid ark address or address not owned by this wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
components:
  schemas:
    SignMessageRequest:
      type: object
      description: Request to sign an arbitrary message with one of the wallet's keys
      required:
        - message
        - address
      properties:
        address:
          type: string
          description: The Ark address to sign the message with
        message:
          type: string
          description: The message to sign
    SignedMessage:
      type: object
      description: A signature over a message
      required:
        - signature
      properties:
        signature:
          type: string
          description: |-
            The BIP-340 Schnorr signature over the message digest
            `SHA256("bark/message" || message)`
    BadRequestError:
      type: object
      required:
        - message
      properties:
        message:
          type: string
    InternalServerError:
      type: object
      required:
        - message
      properties:
        message:
          type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: AuthToken
      description: Base64url-encoded auth token

````