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

# Sign

> Submits a request to sign an Ethereum message.
Uses private keys securely stored within the custody system.
The signing process is asynchronous, as it requires approval from the wallet owner(s) via our Proof of Action (PoA) mechanism.




## OpenAPI

````yaml POST /v1/signs
openapi: 3.0.1
info:
  contact:
    email: developers@ecrop.com
    name: ecrop OmniSafe API Support
    url: https://ecrop.de/contact/
  description: >
    # Preparation Guide

    Welcome to the OmniSafe API Documentation. This document provides a detailed
    list of available APIs and methods for managing wallets, tokens, and
    transfers. Before beginning your integration, it’s recommended to review the
    following essential documents:

    - **API Service Guide (Essential, Pro):** Designed for non-technical users,
      this guide helps in selecting the best API package based on business needs.
      Review it [here](https://youki.atlassian.net/wiki/spaces/mar/pages/534183949/API+Service+Guide).  # Keep or adapt

    - **Integration Handbook:** Targeted at developers, this handbook includes
      crucial details such as endpoint URLs, authentication methods,
      request/response formats, and error handling. It is essential for
      successful integration. Access the handbooks here:

      - [🌳 Pro Package Integration Handbook] # Keep or adapt

      - [🌱 Essential Package Integration Handbook] # Keep or adapt

    Familiarizing yourself with these documents will ensure a smoother
    integration process.
  license:
    name: ecrop OmniSafe
    url: https://developers.ecrop.de/api-license/
  termsOfService: https://developers.ecrop.de/terms-of-use/
  title: OmniSafe API Catalogue
  version: 1.0.0
  x-logo:
    backgroundColor: '#DDDDDD'
    url: >-
      https://static.wixstatic.com/media/fd3e8b_a57864adb1084dea94c9fab462a8f52c~mv2.png/v1/crop/x_0,y_131,w_1253,h_295/fill/w_233,h_55,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/fd3e8b_a57864adb1084dea94c9fab462a8f52c~mv2.png
servers:
  - description: Default
    url: https://omnisafe.sandbox.ecrop.de/omni-safe
security:
  - Bearer Authentication: []
tags:
  - name: Wallets
    description: Endpoints for managing wallets
  - name: Tokens
    description: Endpoints for managing tokens
  - name: Transfers
    description: Endpoints for managing transfers
paths:
  /v1/signs:
    post:
      summary: Request message signing (custody-based with callback)
      description: >
        Submits a request to sign an Ethereum message.

        Uses private keys securely stored within the custody system.

        The signing process is asynchronous, as it requires approval from the
        wallet owner(s) via our Proof of Action (PoA) mechanism.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string
                  description: The message (Base64 encoded).
                  example: SGVsbG8gV29ybGQh
                address:
                  type: string
                  description: The user's wallet address.
                  example: 0x...
                callbackUrl:
                  type: string
                  description: URL to receive the signing result via webhook.
                  example: https://example.com/callback
                chainId:
                  type: integer
                  description: Ethereum chain ID (EIP-155).
                  example: 1
      responses:
        '202':
          description: Signing request accepted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the signing request.
                    example: a1b2c3d4-e5f6-7890-1234-567890abcdef
        '400':
          description: >-
            Bad request (e.g., missing parameters, invalid address, invalid
            Base64 message)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message.
                    example: Invalid address
components:
  securitySchemes:
    Bearer Authentication:
      type: http
      scheme: bearer
      bearerFormat: JWT

````