> ## Documentation Index
> Fetch the complete documentation index at: https://rain-sandbox-trial.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get smart contract information for a user



## OpenAPI

````yaml get /issuing/users/{userId}/contracts
openapi: 3.0.3
info:
  title: Issuing API
  description: This is the specification for Rain's Issuing API.
  termsOfService: https://www.rain.xyz/legal/authorized-user-terms
  contact:
    email: support@rain.xyz
  version: 1.3.0
servers:
  - url: https://api-dev.rain.xyz/v1
    description: Sandbox server
  - url: https://api.rain.xyz/v1
    description: Production server
security: []
tags:
  - name: paymentRoutes
    description: >-
      **Endpoint Migration:** The `/v1/automations` endpoints have been renamed
      to `/v1/payment-routes`. The old `/v1/automations` paths remain available
      as deprecated aliases during migration. Update your integrations to use
      `/v1/payment-routes` as the deprecated endpoints will be removed in a
      future release.
  - name: simulate
    description: >-
      Transaction simulation endpoints for testing integration flows in
      non-production environments. These endpoints let you trigger transaction
      events programmatically to automate integration tests and verify webhook
      handling without depending on external systems or staging real deposits.
      **Sandbox only** — all simulation endpoints return `404 Not Found` in
      production.
  - name: raindrops
    description: >-
      Rewards and points management endpoints. Custom API keys need
      `raindrops:read`/`raindrops:write` for general rewards endpoints and
      `raindrops-travel:read`/`raindrops-travel:write` for travel redemption
      endpoints.
    x-group: rewards
paths:
  /issuing/users/{userId}/contracts:
    get:
      tags:
        - contracts
      summary: Get smart contract information for a user
      operationId: getIssuingUserContracts
      parameters:
        - name: userId
          in: path
          description: Id of the user to get smart contracts for
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IssuingContract'
        '401':
          description: Invalid authorization
        '404':
          description: Team not found
        '500':
          description: Internal server error
      security:
        - ApiKeyAuth: []
components:
  schemas:
    IssuingContract:
      type: object
      required:
        - id
        - chainId
        - controllerAddress
        - proxyAddress
        - tokens
        - contractVersion
      properties:
        id:
          type: string
          format: uuid
          description: Id of the contract
        chainId:
          type: integer
          description: >-
            Chain id that the contract is deployed on, as a parsed base-10
            number
        programAddress:
          $ref: '#/components/schemas/EvmOrSolanaWalletAddress'
          description: Address of the contract program (exclusive of Solana)
          nullable: true
        controllerAddress:
          $ref: '#/components/schemas/EvmOrSolanaWalletAddress'
          description: Address of the contract controller
        proxyAddress:
          $ref: '#/components/schemas/EvmOrSolanaWalletAddress'
          description: Address of the contract
        depositAddress:
          $ref: '#/components/schemas/EvmOrSolanaWalletAddress'
          description: Address to deposit funds to
        adminAddresses:
          type: array
          items:
            $ref: '#/components/schemas/EvmOrSolanaWalletAddress'
          description: >-
            Admin wallet addresses for the smart contract. For V1 EVM contracts,
            contains the on-chain owner address. For V2 EVM contracts, contains
            multiple admin addresses.
        tokens:
          type: array
          description: Tokens that the contract accepts
          items:
            type: object
            required:
              - address
            properties:
              address:
                $ref: '#/components/schemas/EvmOrSolanaWalletAddress'
              balance:
                type: string
              exchangeRate:
                type: number
              advanceRate:
                type: number
        contractVersion:
          type: number
          description: Version of the contract
        onramp:
          type: object
          description: Virtual account information for onramping
          properties:
            ach:
              $ref: '#/components/schemas/AccountDetails'
            rtp:
              $ref: '#/components/schemas/AccountDetails'
            wire:
              $ref: '#/components/schemas/AccountDetails'
    EvmOrSolanaWalletAddress:
      type: string
      pattern: ^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$
    AccountDetails:
      type: object
      required:
        - beneficiaryName
        - beneficiaryAddress
        - accountNumber
        - routingNumber
      properties:
        beneficiaryName:
          type: string
          description: The name of the beneficiary
        beneficiaryAddress:
          type: string
          description: The address of the beneficiary
        beneficiaryBankName:
          type: string
          description: The name of the beneficiary's bank
        beneficiaryBankAddress:
          type: string
          description: The address of the beneficiary's bank
        accountNumber:
          type: string
          description: The account number
        routingNumber:
          type: string
          description: The routing number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: Api-Key
      in: header

````