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

# Update client settings

> Updates client configuration for the authenticated project. Requires the deposits:admin API key scope.



## OpenAPI

````yaml https://raw.githubusercontent.com/rhinestonewtf/openapi/refs/heads/main/deposit-service.json post /setup
openapi: 3.1.0
info:
  title: Deposit Service API
  version: 1.0.0
  description: >-
    Rhinestone Deposits API: accept deposits from any chain, asset or payment
    method, and settle them as one token on one chain.
servers:
  - url: https://v1.orchestrator.rhinestone.dev/deposit-processor
security: []
paths:
  /setup:
    post:
      tags:
        - Clients
      summary: Update client settings
      description: >-
        Updates client configuration for the authenticated project. Requires the
        deposits:admin API key scope.
      parameters:
        - schema:
            type: string
            description: API key for authentication
            example: your-api-key
          required: true
          description: API key for authentication
          name: x-api-key
          in: header
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}\.[a-z0-9]+$
            description: >-
              API version identifier (e.g. "2026-04.amazon"). Optional today,
              will become required in a future release.
            example: 2026-04.amazon
          required: false
          description: >-
            API version identifier (e.g. "2026-04.amazon"). Optional today, will
            become required in a future release.
          name: x-api-version
          in: header
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetupRequestBody'
      responses:
        '200':
          description: Client updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetupResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required, or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: API key lacks the required deposits:admin scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: >-
            Client configuration could not be persisted; retry after the
            Retry-After delay
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    SetupRequestBody:
      type: object
      properties:
        params:
          $ref: '#/components/schemas/ClientInput'
      required:
        - params
    SetupResponse:
      type: object
      properties:
        message:
          type: string
      required:
        - message
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
          description: >-
            Deposit error code (e.g. `TOKEN-3`) when the refusal is one a
            deposit would also receive.
        details:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
              code:
                type: string
            required:
              - message
      required:
        - error
    ClientInput:
      type: object
      properties:
        webhookUrl:
          type:
            - string
            - 'null'
          format: uri
        webhookSecret:
          type:
            - string
            - 'null'
        sponsorship:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ChainSponsorship'
        depositWhitelist:
          $ref: '#/components/schemas/DepositWhitelist'
        swapQuoters:
          $ref: '#/components/schemas/ProjectSwapQuoters'
        maxPriceDeviationBps:
          type:
            - integer
            - 'null'
          minimum: 0
          maximum: 10000
          description: >-
            Maximum amount, in basis points, by which a bridge quote may fall
            short of market prices, with itemised fees excluded. Applies to
            every EVM-origin deposit whose source token has no
            priceDeviationTokens entry. Defaults to 300 (3%) if not set.
          example: 200
        priceDeviationTokens:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              properties:
                token:
                  type: string
                  pattern: ^0x[a-fA-F0-9]{40}$
                  description: Ethereum address (0x followed by 40 hex characters)
                  example: '0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91'
                maxPriceDeviationBps:
                  type: integer
                  minimum: 0
                  maximum: 10000
              required:
                - token
                - maxPriceDeviationBps
          description: >-
            Per-source-token overrides of maxPriceDeviationBps, keyed by the EVM
            chain (CAIP-2, eip155 only) the deposit is bridged from; a
            HyperCore-origin deposit is bridged from HyperEVM, so key it
            "eip155:999". {} clears every override.
          example:
            eip155:8453:
              - token: '0x4200000000000000000000000000000000000006'
                maxPriceDeviationBps: 300
        minDepositUsd:
          type:
            - number
            - 'null'
          minimum: 0
          description: >-
            Minimum deposit value in USD. Deposits priced below this are
            rejected and the client is notified via deposit-rejected. Applies to
            all tokens and chains.
          example: 1
        appFees:
          $ref: '#/components/schemas/AppFees'
    ChainSponsorship:
      type: object
      properties:
        gas:
          type: string
          enum:
            - all
            - none
            - deployed
          description: Gas sponsorship mode
          example: all
        swap:
          type: string
          enum:
            - all
            - none
          description: Fee sponsorship mode
          example: all
        bridging:
          type: string
          enum:
            - all
            - none
          description: Fee sponsorship mode
          example: all
        protocolFee:
          type: string
          enum:
            - all
            - none
          description: Fee sponsorship mode
          example: all
        maxAmountUsd:
          type: number
          exclusiveMinimum: 0
          description: >-
            Largest deposit value in USD this entry sponsors. A deposit valued
            above it, or one that cannot be priced, settles unsponsored: the
            user pays every fee this entry would otherwise cover. Omit to
            sponsor deposits of any value.
          example: 30000
    DepositWhitelist:
      type: object
      additionalProperties:
        type: array
        items:
          type: object
          properties:
            token:
              type: string
              minLength: 1
            minAmount:
              type: string
              pattern: ^\d+$
              description: Numeric string representing a bigint value
              example: '1000000000000000000'
            maxAmount:
              type: string
              pattern: ^\d+$
              description: Numeric string representing a bigint value
              example: '1000000000000000000'
          required:
            - token
      description: >-
        Per-source-chain deposit allowlist keyed by CAIP-2 chain identifiers
        (for example "eip155:8453"). Each key maps to allowed source tokens and
        optional min/max amount limits in raw token units.
      example:
        eip155:8453:
          - token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
            minAmount: '1000000'
            maxAmount: '5000000000'
    ProjectSwapQuoters:
      type: object
      additionalProperties:
        type: array
        items:
          type: string
          enum:
            - 1inch
            - 0x
            - velora
            - kyberswap
            - fynd
            - fynd-hosted
            - bebop
            - relay
      description: >-
        List of swap venues we may request quotes from, keyed by the EVM chain
        the swap is FUNDED FROM (CAIP-2, eip155 only). For every EVM deposit
        that is the chain it arrived on; a HyperCore-origin deposit swaps on
        HyperEVM, so key it "eip155:999". A routing preference applied when
        quoting, not a restriction on the account: it does not survive
        compromise of the executor key, and excluding a venue that would have
        priced better costs price. Omit a chain to leave it unconstrained.
        `quoters` applies per intent, so on a cross-chain route the funding
        chain's list bounds the whole route, and an entry for the destination
        chain does not constrain a route funded elsewhere.
      example:
        eip155:9745:
          - 0x
          - fynd
    AppFees:
      type:
        - object
        - 'null'
      properties:
        feeBps:
          type: integer
          minimum: 0
          maximum: 10000
        tokens:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              properties:
                token:
                  type: string
                  minLength: 1
                feeBps:
                  type: integer
                  minimum: 0
                  maximum: 10000
              required:
                - token
                - feeBps
      description: >-
        Project app-fee settings. An exact normalized source chain+token rate,
        including 0, overrides feeBps; unmatched source assets use feeBps or 0
        when omitted. On update, feeBps 0 clears only the fallback when tokens
        is omitted; appFees null clears fallback and overrides.
      example:
        feeBps: 100
        tokens:
          eip155:8453:
            - token: '0x4200000000000000000000000000000000000006'
              feeBps: 200

````