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

# Get your referral position (deprecated PitPass path)

> Read your own referral position (self-scoped).

 Return the authenticated caller's referral position: their referral chain
 upward (L1, L2 and onward — who referred them, who referred that wallet, and
 so on, as many levels as their trades on this client application pay), the
 total rewards they have earned, and their most recent reward rows.
 Self-scoped — identity comes only from the session, never a path id,
 so a caller can only ever read their own chain. Every other user is
 identified by their public wallet address, never an internal id. An empty
 `referrer` means the caller was not referred.



## OpenAPI

````yaml /proto-openapi/api/openapi.yaml get /api/v1/pitpass/referrals/me
openapi: 3.0.3
info:
  title: Monaco Protocol API
  description: REST API for the Monaco Protocol hybrid CLOB exchange.
  version: 1.0.0
servers:
  - url: https://staging.apimonaco.xyz
    description: Staging server (Testnet)
security: []
tags:
  - name: AccountsService
  - name: ApplicationsService
  - name: AuthService
  - name: BuildercodeRewardsService
  - name: CopyTradingService
  - name: DelegatedAgentsService
  - name: FaucetService
  - name: FeesService
  - name: HealthService
  - name: ManagedMarketsService
    description: |-
      Wallet-authenticated maker assignments. The signed session must match both
       configured maker user and application. Owner IDs are process fences, never auth.
       Only wallet sessions are supported; delegated-agent sessions receive 403.
  - name: MarginAccountsService
    description: |-
      Current public isolated-margin semantics:
       - a user has one parent margin account per application scope
       - opening orders create or reuse isolated position buckets under that parent
       - parent account creation is handled internally by margin workflows
  - name: MarketService
  - name: OrderbookService
  - name: OrdersService
  - name: PositionsService
    description: |-
      Current public isolated-margin semantics:
       - positions link to a parent margin account and, when applicable, a bucket id
       - opening orders create or reuse isolated position buckets under the parent
       - users can open another isolated position by reusing the parent account with a different market bucket
  - name: PulseService
  - name: SweeperService
  - name: TraderCodeService
  - name: TradesService
  - name: WhitelistService
  - name: WithdrawalsService
paths:
  /api/v1/pitpass/referrals/me:
    get:
      tags:
        - TraderCodeService
        - PitPass
      summary: Get your referral position (deprecated PitPass path)
      description: |-
        Read your own referral position (self-scoped).

         Return the authenticated caller's referral position: their referral chain
         upward (L1, L2 and onward — who referred them, who referred that wallet, and
         so on, as many levels as their trades on this client application pay), the
         total rewards they have earned, and their most recent reward rows.
         Self-scoped — identity comes only from the session, never a path id,
         so a caller can only ever read their own chain. Every other user is
         identified by their public wallet address, never an internal id. An empty
         `referrer` means the caller was not referred.
      operationId: pitpass_get_my_referral_position
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMyReferralPositionResponse'
        '401':
          description: Authentication required
        '429':
          description: >-
            Read rate limit exceeded — every authenticated read draws one
            request from the account's read budget; retry after the interval in
            details.retryAfter
        '500':
          description: Internal server error
      deprecated: true
      security:
        - monacoSignature: []
        - monacoHttpSignature: []
components:
  schemas:
    GetMyReferralPositionResponse:
      type: object
      properties:
        referrer:
          example: '0x0000000000000000000000000000000000000002'
          type: string
          description: >-
            Public wallet address of the caller's direct (L1) referrer — who
            referred them. Empty when the caller was not referred. The same
            wallet as the first `upline` entry whenever `upline` is not empty;
            never an internal id.
          nullable: true
        totalEarned:
          example: '1400000'
          type: string
          description: >-
            Total reward amount the caller has earned, summed across every level
            and token, in RAW atomic units.
          nullable: true
        referrerDisplay:
          example: cooltrader123
          type: string
          description: >-
            Human-facing name for the referrer: their custom TraderCode handle
            when they have claimed one, otherwise the wallet address (same as
            `referrer`). Empty when the caller was not referred. Render this
            instead of raw hex.
          nullable: true
        rewards:
          type: array
          items:
            $ref: '#/components/schemas/ReferralRewardEntry'
          description: >-
            The caller's most recent reward rows, newest first. Bounded
            server-side — not the full history.
          nullable: true
        upline:
          type: array
          items:
            $ref: '#/components/schemas/ReferralUplineEntry'
          description: >-
            The caller's referral chain upward, nearest first: L1 (who referred
            the caller), then L2 (who referred them), and so on: the levels the
            caller's trades on this client application pay (at most 10). Shorter
            when the chain ends; empty when the caller was not referred or this
            client application pays no referral levels. These are the wallets
            the caller's own trades on this client application pay referral
            rewards to.
          nullable: true
    ReferralRewardEntry:
      type: object
      properties:
        source:
          example: '0x0000000000000000000000000000000000000002'
          type: string
          description: >-
            Public wallet address of the trader (taker) whose trade generated
            this reward. Never an internal id.
          nullable: true
        level:
          example: 1
          type: integer
          description: >-
            Referral level this reward was paid at: 1 for the direct referrer, 2
            for the referrer's referrer, and so on (at most 10).
          format: int32
          nullable: true
        amount:
          example: '1200000'
          type: string
          description: Reward amount, in RAW atomic units of the token.
          nullable: true
        token:
          example: '0x0000000000000000000000000000000000000002'
          type: string
          description: Reward token contract address (0x-prefixed).
          nullable: true
        rateApplied:
          example: '0.30'
          type: string
          description: >-
            The referral rate applied to the source's fee for this reward, as a
            decimal fraction (e.g. `0.30` for L1).
          nullable: true
        createdAt:
          example: '2026-07-07T18:00:00Z'
          type: string
          description: RFC 3339 timestamp when the reward row was recorded.
          nullable: true
        sourceDisplay:
          example: cooltrader123
          type: string
          description: >-
            Human-facing name for the source: their custom TraderCode handle
            when they have claimed one, otherwise the wallet address (same as
            `source`). Render this instead of raw hex.
          nullable: true
      description: >-
        A single reward the caller has earned, one row per referred trade ×
        level.
    ReferralUplineEntry:
      type: object
      properties:
        wallet:
          example: '0x0000000000000000000000000000000000000002'
          type: string
          description: Public wallet address of the ancestor. Never an internal id.
          nullable: true
        display:
          type: string
          description: >-
            Human-facing name for the ancestor: their custom TraderCode handle
            when they have claimed one, otherwise the wallet address (same as
            `wallet`). Render this instead of raw hex.
          nullable: true
        level:
          maximum: 10
          minimum: 1
          type: integer
          description: >-
            How far above the caller this ancestor is: 1 (the caller's direct
            referrer), 2, and so on up to the configured reward depth (at most
            10).
          format: int32
          nullable: true
      description: One ancestor in the caller's referral chain.
  securitySchemes:
    monacoSignature:
      type: apiKey
      description: >-
        Ed25519 session-key request signing. Every authenticated request carries
        three headers: `X-Monaco-PublicKey` (64-char lowercase-hex session
        public key), `X-Monaco-Timestamp` (Unix milliseconds, within 30s of
        server time), and `X-Monaco-Signature` (hex ed25519 signature). The
        signature is over `METHOD\npath?query\ntimestamp_ms\nSHA256_hex(body)`,
        where the body hash is the SHA-256 of the empty byte string when there
        is no body. Obtain the session keypair from `POST
        /api/v1/auth/challenge` followed by `POST /api/v1/auth/verify`.
      name: X-Monaco-Signature
      in: header
    monacoHttpSignature:
      type: apiKey
      description: >-
        RFC 9421 Ed25519 session-key request signatures. Send Signature-Input,
        Signature, and Content-Digest together; never combine them with
        X-Monaco-* credentials. The monaco signature covers @method, @path,
        @query, and content-digest in that order, with created (Unix seconds
        within 30s of server time), keyid (registered lowercase-hex session
        public key), and alg=ed25519 parameters. Content-Digest uses RFC 9530
        sha-256 over the exact body bytes, including the empty body. Query
        coverage retains ordering and percent encoding. Timestamp freshness does
        not reject repeated identical requests; use endpoint idempotency where
        supported. Existing legacy signing remains supported during server-first
        migration; SDK RFC 9421 signing is opt-in. See
        https://docs.0xmonaco.com/reference/http-message-signatures for the
        complete profile and trust model.
      name: Signature
      in: header

````

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