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

# A wallet's open/closed positions



## OpenAPI

````yaml /api-reference/openapi.json get /v1/partner/positions/{address}
openapi: 3.1.0
info:
  title: Spiral Stake — Read API (v1)
  version: 0.1.0
  description: >-
    Read-only composition authority for Spiral Stake strategy data. Serves the
    frozen /strategies contract (agents + app) plus the full app read surface.
    All numbers are composed from warm cache; a stale/failed upstream serves
    last-good with a visible stale age.
servers:
  - url: https://api.spiralstake.xyz
    description: Production
  - url: http://localhost:8787
    description: Local
security: []
tags:
  - name: Public
    description: Open read endpoints — no key required.
  - name: Partner
    description: 'Keyed integration API — Authorization: Bearer <key>.'
paths:
  /v1/partner/positions/{address}:
    get:
      tags:
        - Partner
      summary: A wallet's open/closed positions
      parameters:
        - name: address
          in: path
          required: true
          schema:
            type: string
            pattern: ^0x[0-9a-fA-F]{40}$
          description: Wallet address.
        - name: chainId
          in: query
          required: false
          schema:
            type: integer
            enum:
              - 1
              - 4663
            default: 1
          description: Chain to target — 1 = Ethereum (default), 4663 = Robinhood Chain.
      responses:
        '200':
          description: Positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  chainId:
                    type: integer
                  userAddress:
                    type: string
                  positions:
                    type: array
                    items:
                      type: object
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      correlationId:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                      - correlationId
        '401':
          description: Missing/invalid API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      correlationId:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                      - correlationId
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      correlationId:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                      - correlationId
        '503':
          description: Transient (stale data / no route / RPC) — retry
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      correlationId:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                      - correlationId
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Partner API key: `Authorization: Bearer <key>`.'

````