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

# Close vault

> Requires key scope `vault/close`.

Returns an unsigned v0 transaction for the manager to sign. Do not send `payer`: the API sets it to the key's manager and rejects a body that contains it. Unknown fields are ignored. The key's manager must be the vault's current on-chain authority, and the vault must be in the key's allowlist when the key has one.

Closes the vault. The program rejects it unless the vault is eligible to close.



## OpenAPI

````yaml /api-reference/openapi.json post /transactions/vault/close
openapi: 3.1.0
info:
  title: Hedgin manager bot API
  version: 1.0.0
  description: >-
    Versioned HTTP API for approved manager bots. Reads vault state and builds
    unsigned Solana transactions. The bot signs locally with the vault's current
    authority key. Runs only on Solana mainnet-beta.
servers:
  - url: https://hedgin.xyz/api/external/v1
    description: Production (Solana mainnet-beta)
security:
  - bearerAuth: []
tags:
  - name: Vault reads
  - name: Market reads
  - name: Jupiter transactions
  - name: Meteora DLMM transactions
  - name: Phoenix transactions
  - name: Vault and strategy transactions
  - name: Send and status
paths:
  /transactions/vault/close:
    post:
      tags:
        - Vault and strategy transactions
      summary: Close vault
      description: >-
        Requires key scope `vault/close`.


        Returns an unsigned v0 transaction for the manager to sign. Do not send
        `payer`: the API sets it to the key's manager and rejects a body that
        contains it. Unknown fields are ignored. The key's manager must be the
        vault's current on-chain authority, and the vault must be in the key's
        allowlist when the key has one.


        Closes the vault. The program rejects it unless the vault is eligible to
        close.
      operationId: build_vault_close
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - vault
              properties:
                vault:
                  $ref: '#/components/schemas/PublicKey'
                  description: Vault the transaction acts on.
      responses:
        '200':
          description: Build result. One step.
          content:
            application/json:
              schema:
                type: object
                required:
                  - vault
                  - result
                properties:
                  vault:
                    $ref: '#/components/schemas/PublicKey'
                  result:
                    $ref: '#/components/schemas/BuiltStep'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '422':
          $ref: '#/components/responses/Unprocessable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '502':
          $ref: '#/components/responses/BadGateway'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    PublicKey:
      type: string
      description: >-
        Base58 Solana public key. The server decodes it and rejects anything
        that is not 32 bytes.
      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
      example: So11111111111111111111111111111111111111112
    BuiltStep:
      type: object
      description: >-
        One unsigned transaction and its ticket. Builders can add action
        metadata fields next to these.
      required:
        - transaction
        - simulation
        - ticket
        - blockhash
      properties:
        transaction:
          type: string
          format: byte
          description: >-
            Unsigned Solana v0 transaction, base64. At most 1232 bytes decoded.
            The fee payer is the key's manager. Builder-added signatures, such
            as a new position keypair, are already present.
        simulation:
          $ref: '#/components/schemas/Simulation'
        ticket:
          type: string
          description: >-
            Signed build ticket. Expires 90 seconds after the build. Binds the
            exact message, key, manager, vault, action, cluster, and program.
        blockhash:
          type: string
          description: Recent blockhash in the transaction message.
        sendConcurrently:
          type: boolean
          description: >-
            Consecutive steps with `sendConcurrently: true` may be submitted
            together. A step without it is a confirmation barrier.
        next:
          $ref: '#/components/schemas/NextStep'
      additionalProperties: true
    Simulation:
      type: object
      required:
        - unitsConsumed
      properties:
        unitsConsumed:
          type: integer
          description: >-
            Compute units the build-time simulation used. `0` when simulation
            was deferred.
        deferred:
          type: boolean
          description: >-
            `true` when the step depends on an earlier step in the same batch.
            RPC preflight checks it at send time instead.
    NextStep:
      type: object
      description: >-
        A follow-up build. After this step confirms, call `POST
        /transactions/{path}` with `body` unchanged. `body` never contains
        `payer`.
      required:
        - path
        - body
      properties:
        path:
          type: string
          description: Builder action name, such as `jupiter/sweep` or `dlmm/add-range`.
          example: jupiter/sweep
        body:
          type: object
          additionalProperties: true
          description: Request body for the follow-up build.
    Error:
      type: object
      description: >-
        Every error response uses this envelope. Responses with status 500, 502,
        or 503 always carry the message `Service temporarily unavailable`.
        Responses with status 422 always carry the message `Transaction rejected
        during simulation or preflight`. In both cases `code` still names the
        cause.
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: >-
                Stable machine-readable code, such as `Validation`, `Forbidden`,
                or a decoded program error name.
              example: Validation
            message:
              type: string
              description: Human-readable detail. Never contains provider logs.
              example: vault must be a public key
  responses:
    BadRequest:
      description: >-
        Invalid path, query, or body. Builder messages name the field, such as
        `amount: must be a non-negative integer string`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Validation
              message: vault must be a public key
    Unauthorized:
      description: Missing, malformed, unknown, revoked, or expired API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Unauthorized
              message: Invalid API key
    Forbidden:
      description: >-
        The key lacks the required scope, the vault is outside the key's
        allowlist, or the key's manager is not the vault's current on-chain
        authority.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Forbidden
              message: Action is not enabled for this key
    NotFound:
      description: Unknown route, or the vault, mint, pool, or strategy does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NotFound
              message: Vault not found
    Conflict:
      description: >-
        Chain state conflicts with the request. Read current state before you
        build again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Stale
              message: pool price moved; refresh before flipping
    PayloadTooLarge:
      description: Request body larger than 16,384 bytes.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: BodyTooLarge
              message: Request body is too large
    Unprocessable:
      description: >-
        Simulation or RPC preflight rejected the transaction, or it does not fit
        in Solana transactions. `code` is the decoded program error name when
        one exists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: SlippageToleranceExceeded
              message: Transaction rejected during simulation or preflight
    TooManyRequests:
      description: A rate limit is exhausted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RateLimited
              message: Too many requests, slow down
    InternalError:
      description: >-
        Internal error, including a builder that returned an invalid transaction
        (`BuildFailed`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Internal
              message: Service temporarily unavailable
    BadGateway:
      description: An upstream provider (Jupiter, Meteora, or Phoenix) failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: JupiterQuoteFailed
              message: Service temporarily unavailable
    ServiceUnavailable:
      description: RPC, key store, or service configuration unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RpcUnavailable
              message: Service temporarily unavailable
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: hv1_<id>_<secret>
      description: >-
        API key issued by a Hedgin administrator, in the form
        `hv1_<id>_<secret>`. `<id>` is 1 to 48 characters and `<secret>` is 32
        to 128 characters, both from `[A-Za-z0-9_-]`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.