> ## Documentation Index
> Fetch the complete documentation index at: https://79cdaa32-9b19-4e9d-ab9d-a89800ef0f46.valox.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Setup Safe with Signature

> Takes an EIP-712 signature provided by the user's wallet and executes the account setup transaction.
This is the second step in the account setup process, after obtaining the signature data
from the GET /api/v1/account/signature-payload endpoint.

The process flow is:
1. Call GET /api/v1/account/signature-payload to get the EIP-712 signature data
2. Sign the data with the user's wallet
3. Submit the signature to this endpoint to execute the transaction

This endpoint will wait for the transaction to be confirmed on-chain and return the
transaction hash when successful. Because it waits for on-chain confirmation, this request
may take up to 10 seconds to complete.

The setup process configures Safe account allowances and delay mechanisms required for secure operation.

Prerequisites:
- User must have a deployed Safe account
- The Safe account must have a currency set (via /api/v1/safe/set-currency)
- User must have signed the data from GET /api/v1/account/signature-payload




## OpenAPI

````yaml specs/api/spec.json patch /api/v1/account/deploy-safe-modules
openapi: 3.0.0
info:
  title: ValoX API
  version: 1.0.0
  description: OpenAPI documentation for ValoX
servers:
  - url: https://api.valox.co
security: []
tags:
  - name: Account Management
    description: Information about your Account
  - name: Authentication
    description: Authenticate to our API using SIWE
  - name: Card Management
    description: Manage all your Cards
  - name: IBAN
    description: Integrate with Monerium to issue IBANs
  - name: KYC
    description: KYC using Sumsub SDK
  - name: Physical Card Order
    description: Order a Physical Card and manage the process
  - name: Rewards
    description: Cashback Rewards
  - name: Safe Management
    description: Manage your Safe
  - name: Transactions
    description: Manage Card Transactions
  - name: User
    description: Manage User Information
  - name: Webhooks
    description: Manage Webhooks
paths:
  /api/v1/account/deploy-safe-modules:
    patch:
      tags:
        - Safe Management
      summary: Setup Safe with Signature
      description: >
        Takes an EIP-712 signature provided by the user's wallet and executes
        the account setup transaction.

        This is the second step in the account setup process, after obtaining
        the signature data

        from the GET /api/v1/account/signature-payload endpoint.


        The process flow is:

        1. Call GET /api/v1/account/signature-payload to get the EIP-712
        signature data

        2. Sign the data with the user's wallet

        3. Submit the signature to this endpoint to execute the transaction


        This endpoint will wait for the transaction to be confirmed on-chain and
        return the

        transaction hash when successful. Because it waits for on-chain
        confirmation, this request

        may take up to 10 seconds to complete.


        The setup process configures Safe account allowances and delay
        mechanisms required for secure operation.


        Prerequisites:

        - User must have a deployed Safe account

        - The Safe account must have a currency set (via
        /api/v1/safe/set-currency)

        - User must have signed the data from GET
        /api/v1/account/signature-payload
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - signature
              properties:
                signature:
                  type: string
                  description: The EIP-712 signature for the account setup transaction
            examples:
              signature:
                value:
                  signature: >-
                    0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b
      responses:
        '200':
          description: Successfully executed setup transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactionHash:
                    type: string
                    description: The transaction hash of the executed transaction
                  deployed:
                    type: boolean
                    description: Whether the account setup is deployed
              examples:
                success:
                  value:
                    transactionHash: >-
                      0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
                    deployed: true
        '400':
          description: Bad request (missing parameters, account, or signer)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message explaining why the request failed
              examples:
                accountNotFound:
                  value:
                    error: Account not found
                currencyNotSet:
                  value:
                    error: Safe currency not set
                missingSigner:
                  value:
                    error: Missing signer address
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      deprecated: true
      security:
        - bearerAuth: []
components:
  responses:
    UnauthorizedError:
      description: Unauthorized Error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
          example: Internal server error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````