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

# Get own maker

> Get the maker the account's linked wallet controls, if any, and whether it is admitted.

Requires a wallet session, sent from its `Origin`; an API key cannot call it.



## OpenAPI

````yaml /hyperliquid/openapi.json get /v1/me/maker
openapi: 3.1.1
info:
  title: Totalis Hyperliquid API
  description: >-
    REST API for Totalis singles and parlays on Hyperliquid HIP-4 outcome
    markets, for client integrations and external market makers.


    There are three ways in, each sent as `Authorization: Bearer <credential>`:


    - **Scoped API key** (`ttk_`), for servers, bots and market makers. The
    account owner creates it in the Totalis app, or a wallet-session user
    creates one with `POST /v1/me/api-keys` and a fresh wallet signature (see
    API keys). It acts for one account, yours or a maker's, with only the scopes
    it holds, and needs no `Origin`.

    - **Wallet session**, for users who bring their own wallet to a partner's
    web page. The page signs the wallet in with `POST
    /v1/auth/wallet-challenges` and `POST /v1/auth/wallet-sessions`; the session
    is bound to the page's registered `Origin` and must be sent from it. Pages
    may also label their traffic with their publishable browser key in
    `X-Totalis-Partner: tpb_...`.

    - **Partner server key** (`tpk_`), only for `POST
    /v1/partner/wallet-admissions`, which lets a new wallet open its account
    during the invite-only launch. Server to server, never in a browser, and
    never with an `Origin`.


    Public market reads need no credential. A credential only authenticates:
    every bet, cash-out and withdrawal also carries the wallet or maker
    signature the HyperEVM contract verifies. An external wallet sends `POST
    /v1/core-exits` to move its vault cash to HyperCore before a HyperCore
    order.


    For access, partner credentials (origins, browser and server keys), builder
    codes or staging, email
    [founders@totalis.trade](mailto:founders@totalis.trade).


    Amounts are base-10 strings in native USDC atomic units, large identifiers
    are decimal strings, and every command `POST` requires an `Idempotency-Key`
    header.


    Every error is `{error: {code, message, retry, request_id,
    field_violations}}`. `code` is stable; each operation lists the codes it
    returns per status. `retry` is `NEVER` (stop), `BACKOFF` (resend the same
    request with the same `Idempotency-Key` after `Retry-After` seconds) or
    `REFRESH` (re-read state, then send a new request with a new key).
    `field_violations` names invalid inputs by JSON pointer, such as
    `/legs/0/side`.
  version: 162.0.0-accept-before
servers:
  - url: https://hip4-api.totalis.trade
    description: Production public edge
  - url: https://hip4-api-staging.totalis.trade
    description: Staging and chain-998 public edge
security: []
tags:
  - name: Markets
    description: >-
      HIP-4 questions and markets, their sides and price history. No API key
      needed.
  - name: RFQs & Quotes
    description: >-
      RFQs and the quotes that answer them: what a taker calls, then what a
      maker calls.
  - name: Positions
    description: Positions the account holds, or its maker backs.
  - name: Account
    description: >-
      The account a key acts for: identity, balances, activity, operations,
      withdrawals, deposits and HyperCore exits.
  - name: Makers
    description: >-
      The rest of a maker's setup after Making: admission, quote history,
      capital and collateral.
  - name: Partners & wallet sign-in
    description: >-
      A partner admits its users' own wallets, which sign in from the partner's
      pages.
  - name: API keys
    description: >-
      Issue, rotate and revoke scoped keys from a wallet session. An API key
      cannot manage keys.
  - name: Deployment
    description: The contract deployment every signature is made against.
  - name: WebSocket
    description: The authenticated WebSocket for account and maker updates.
paths:
  /v1/me/maker:
    get:
      tags:
        - Makers
      summary: Get own maker
      description: >-
        Get the maker the account's linked wallet controls, if any, and whether
        it is admitted.


        Requires a wallet session, sent from its `Origin`; an API key cannot
        call it.
      operationId: getOwnMaker
      parameters:
        - name: Origin
          in: header
          required: false
          schema:
            type: string
          description: Required for browser sessions; API keys do not require an Origin.
          example: https://totalis.trade
      responses:
        '200':
          description: >-
            The account's maker ownership. `SETUP_REQUIRED` means the wallet
            controls a maker on chain with no admitted profile yet, which `POST
            /v1/me/maker` admits when the wallet is also its quote signer;
            `READY` means it is admitted. This read creates nothing and moves no
            funds. No shared caching.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
            Vary:
              $ref: '#/components/headers/Vary'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnMaker'
              example:
                contract_version: '1'
                chain_id: '999'
                vault: '0x2222222222222222222222222222222222222222'
                generated_at: '2026-09-17T12:00:00Z'
                ownership:
                  state: SETUP_REQUIRED
                  owner: '0x1111111111111111111111111111111111111111'
                  maker: null
        '400':
          description: >-
            - `ORIGIN_REQUIRED` (retry `NEVER`): A browser route needs exactly
            one `Origin` header.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      error:
                        description: The error this operation returns with this status.
                        properties:
                          code:
                            description: >-
                              One of the registered codes listed in this
                              response's description.
                            enum:
                              - ORIGIN_REQUIRED
                          retry:
                            description: >-
                              The retry rule the registry fixes for the returned
                              code.
                            enum:
                              - NEVER
        '401':
          description: >-
            - `UNAUTHENTICATED` (retry `NEVER`): The credential is missing,
            invalid, expired or revoked.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      error:
                        description: The error this operation returns with this status.
                        properties:
                          code:
                            description: >-
                              One of the registered codes listed in this
                              response's description.
                            enum:
                              - UNAUTHENTICATED
                          retry:
                            description: >-
                              The retry rule the registry fixes for the returned
                              code.
                            enum:
                              - NEVER
        '403':
          description: >-
            - `FORBIDDEN` (retry `NEVER`): The credential is valid but lacks the
            scope, permission or role this operation needs.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      error:
                        description: The error this operation returns with this status.
                        properties:
                          code:
                            description: >-
                              One of the registered codes listed in this
                              response's description.
                            enum:
                              - FORBIDDEN
                          retry:
                            description: >-
                              The retry rule the registry fixes for the returned
                              code.
                            enum:
                              - NEVER
        '404':
          description: >-
            - `NOT_FOUND` (retry `NEVER`): The resource does not exist or is not
            visible to this credential.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      error:
                        description: The error this operation returns with this status.
                        properties:
                          code:
                            description: >-
                              One of the registered codes listed in this
                              response's description.
                            enum:
                              - NOT_FOUND
                          retry:
                            description: >-
                              The retry rule the registry fixes for the returned
                              code.
                            enum:
                              - NEVER
        '429':
          description: >-
            - `RATE_LIMITED` (retry `BACKOFF`): The request quota for this
            credential or route is exhausted.
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      error:
                        description: The error this operation returns with this status.
                        properties:
                          code:
                            description: >-
                              One of the registered codes listed in this
                              response's description.
                            enum:
                              - RATE_LIMITED
                          retry:
                            description: >-
                              The retry rule the registry fixes for the returned
                              code.
                            enum:
                              - BACKOFF
        '503':
          description: >-
            - `AUTHORIZATION_UNAVAILABLE` (retry `BACKOFF`): Identity or
            credential authority storage is unavailable.

            - `DEPENDENCY_STALE` (retry `BACKOFF`): A projection or upstream the
            request depends on (chain projection, HyperCore state, database) is
            behind its freshness bound or unavailable.
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      error:
                        description: The error this operation returns with this status.
                        properties:
                          code:
                            description: >-
                              One of the registered codes listed in this
                              response's description.
                            enum:
                              - AUTHORIZATION_UNAVAILABLE
                              - DEPENDENCY_STALE
                          retry:
                            description: >-
                              The retry rule the registry fixes for the returned
                              code.
                            enum:
                              - BACKOFF
      security:
        - walletSession: []
components:
  headers:
    CacheControl:
      description: Always `no-store`; account data must not be cached.
      schema:
        const: no-store
    Vary:
      schema:
        type: string
      description: >-
        The response varies by the Authorization header, so shared caches must
        not reuse it across credentials.
    RetryAfter:
      description: Seconds to wait before resending the same request
      schema:
        type: integer
        minimum: 1
  schemas:
    OwnMaker:
      type: object
      required:
        - contract_version
        - chain_id
        - vault
        - generated_at
        - ownership
      properties:
        contract_version:
          const: '1'
          description: Account-read contract version; always "1" for this response shape.
        chain_id:
          type: string
          pattern: ^(0|[1-9][0-9]{0,77})$
          description: >-
            EVM chain ID of the deployment the credential is bound to, as a
            decimal string (999 on HyperEVM Mainnet).
        vault:
          $ref: '#/components/schemas/LowercaseNonZeroAddress'
          description: >-
            Lowercase address of the vault contract of the credential's
            deployment.
        generated_at:
          type: string
          format: date-time
          description: RFC3339 UTC time the server built this response.
        ownership:
          type: object
          required:
            - state
            - maker
          properties:
            state:
              type: string
              enum:
                - NOT_CREATED
                - WALLET_REQUIRED
                - OWNERSHIP_CONFLICT
                - READY
                - PENDING
                - RESTRICTED
                - SETUP_REQUIRED
              description: >-
                NOT_CREATED: the account's wallet controls no maker;
                WALLET_REQUIRED: the account has no single qualifying linked
                wallet; OWNERSHIP_CONFLICT: several candidate wallets, or the
                maker's current controller no longer matches; READY: the maker
                is admitted and current; PENDING: the maker profile awaits
                admission; RESTRICTED: the maker profile is restricted or
                closed; SETUP_REQUIRED: a maker controlled by the wallet exists
                on-chain but has no admitted profile yet.
            owner:
              $ref: '#/components/schemas/LowercaseNonZeroAddress'
              description: >-
                Linked wallet that controls (owns) the maker; absent when the
                account has no single qualifying linked wallet.
            maker:
              oneOf:
                - $ref: '#/components/schemas/MakerAccess'
                - type: 'null'
              description: >-
                The admitted maker and the caller's owner access to it; null
                unless state is READY, PENDING or RESTRICTED.
          description: >-
            Maker ownership state of the caller's account, derived from its
            linked wallet and indexed on-chain controller evidence.
    Error:
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: The one error this request failed with.
      required:
        - error
      type: object
    LowercaseNonZeroAddress:
      type: string
      pattern: ^0x[0-9a-f]{40}$
      not:
        const: '0x0000000000000000000000000000000000000000'
    MakerAccess:
      type: object
      required:
        - maker_id
        - owner
        - owner_version
        - access_revision
        - permissions
      properties:
        maker_id:
          $ref: '#/components/schemas/NonZeroUInt64String'
          description: On-chain maker ID this access applies to, as a decimal string.
        owner:
          $ref: '#/components/schemas/LowercaseNonZeroAddress'
          description: Maker controller (owner) address the access was verified against.
        owner_version:
          type: string
          pattern: ^(0|[1-9][0-9]{0,77})$
          description: >-
            Maker controller epoch at verification, as a decimal string; a
            controller change invalidates access derived from an earlier epoch.
        access_revision:
          type: string
          pattern: ^(0|[1-9][0-9]{0,77})$
          description: >-
            Revision of the owner's wallet link, as a decimal string. It changes
            when the wallet is unlinked and relinked, which expires cursors
            bound to the old revision.
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
          uniqueItems: true
          description: Read permissions held. They never authorize signing or spending.
    ErrorDetail:
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
          description: Stable registered code; branch on this, not on message or status.
        field_violations:
          description: >-
            Each invalid input by JSON pointer; empty when the error is not
            about a specific input.
          items:
            $ref: '#/components/schemas/FieldViolation'
          type: array
        message:
          description: Human-readable; may change without notice.
          minLength: 1
          type: string
        request_id:
          description: >-
            UUIDv7 of this request, also returned in the X-Request-ID header.
            Quote it when reporting a problem.
          format: uuid
          pattern: >-
            ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
          type: string
        retry:
          $ref: '#/components/schemas/Retry'
          description: What the caller should do next; fixed by the registry for each code.
      required:
        - code
        - message
        - retry
        - request_id
        - field_violations
      type: object
    NonZeroUInt64String:
      allOf:
        - $ref: '#/components/schemas/UInt64String'
        - not:
            const: '0'
    Permission:
      type: string
      enum:
        - READ_CAPITAL
        - READ_POSITIONS
        - READ_ACTIVITY
        - READ_PERFORMANCE
        - READ_TELEMETRY
    ErrorCode:
      description: >-
        Stable HTTP error code. Each code has one HTTP status and one retry
        value.
      enum:
        - INVALID_REQUEST
        - INVALID_QUERY
        - INVALID_CURSOR
        - INVALID_IDEMPOTENCY_KEY
        - ORIGIN_REQUIRED
        - SUBPROTOCOL_REQUIRED
        - UNSUPPORTED_BROWSE_CONTRACT
        - UNAUTHENTICATED
        - FORBIDDEN
        - ORIGIN_NOT_ALLOWED
        - ACCESS_REQUIRED
        - NOT_FOUND
        - IDENTITY_NOT_FOUND
        - QUOTE_NOT_FOUND
        - INVITE_CODE_NOT_FOUND
        - IDEMPOTENCY_KEY_REUSED
        - STATE_CONFLICT
        - INVITE_CODE_EXHAUSTED
        - STALE_CURSOR
        - CURSOR_EXPIRED
        - CURSOR_RESET
        - RECURRING_DEFINITION_CONFLICT
        - EMBEDDED_WALLET_CONFLICT
        - SECRET_UNAVAILABLE
        - ROTATION_IN_PROGRESS
        - TELEMETRY_CONFLICT
        - RFQ_NOT_CANCELLABLE
        - RFQ_NOT_OPEN
        - RFQ_GENERATION_STALE
        - RFQ_GENERATION_IN_FLIGHT
        - QUOTE_EXPIRED
        - QUOTE_CANCELLED
        - QUOTE_REPLACED
        - QUOTE_SIGNER_CHANGED
        - QUOTE_CAPACITY_EXCEEDED
        - CORE_ACCOUNT_NOT_READY
        - CORE_ACCOUNT_ACTIVATION_REQUIRED
        - CORE_EXIT_ABANDONED
        - CORE_MOVE_IN_FLIGHT
        - USERNAME_TAKEN
        - USERNAME_ALREADY_SET
        - INVALID_SIGNATURE
        - WALLET_CONTRACT_UNSUPPORTED
        - WRONG_AUTHORITY
        - KEY_LIMIT_REACHED
        - USERNAME_NOT_ALLOWED
        - RATE_LIMITED
        - CONNECTION_LIMIT
        - RFQ_INTENT_LIMIT
        - QUOTE_EXPOSURE_LIMIT
        - DEPENDENCY_STALE
        - AUTHORIZATION_UNAVAILABLE
        - SOURCE_UNAVAILABLE
        - CONTRACT_UNAVAILABLE
        - MARKET_DATA_UNAVAILABLE
        - BROWSE_UNAVAILABLE
        - FINANCIAL_ACTIONS_DISABLED
        - CORE_EXIT_UNAVAILABLE
        - COLLATERAL_REDUCTION_UNAVAILABLE
        - SPONSORSHIP_UNAVAILABLE
        - CONTRACT_SIGNATURE_OVERLOADED
        - QUOTE_EXPOSURE_STALE
        - COMBO_AUTOMATIC_DISABLED
        - EMBEDDED_WALLET_UNAVAILABLE
        - CONNECTION_DRAIN
      type: string
    FieldViolation:
      properties:
        code:
          description: >-
            REQUIRED: the input is missing. INVALID: it is present but malformed
            or out of range. UNEXPECTED: the input is not accepted here.
          enum:
            - REQUIRED
            - INVALID
            - UNEXPECTED
          type: string
        field:
          description: >-
            JSON pointer into the body, or into the query parameters as one flat
            object for requests without a body, for example /legs/0/stake or
            /limit.
          pattern: ^(/([^~/]|~[01])*)+$
          type: string
      required:
        - field
        - code
      type: object
    Retry:
      description: >-
        NEVER: stop. BACKOFF: resend the same request with the same
        Idempotency-Key after Retry-After. REFRESH: re-read state, then send a
        new request with a new Idempotency-Key.
      enum:
        - NEVER
        - BACKOFF
        - REFRESH
      type: string
    UInt64String:
      type: string
      pattern: >-
        ^(0|[1-9][0-9]{0,18}|1[0-7][0-9]{18}|18[0-3][0-9]{17}|184[0-3][0-9]{16}|1844[0-5][0-9]{15}|18446[0-6][0-9]{14}|184467[0-3][0-9]{13}|1844674[0-3][0-9]{12}|184467440[0-6][0-9]{10}|1844674407[0-2][0-9]{9}|18446744073[0-6][0-9]{8}|1844674407370[0-8][0-9]{6}|18446744073709[0-4][0-9]{5}|184467440737095[0-4][0-9]{4}|18446744073709550[0-9]{3}|18446744073709551[0-5][0-9]{2}|1844674407370955160[0-9]|1844674407370955161[0-5])$
      maxLength: 20
      format: uint64-decimal
  securitySchemes:
    walletSession:
      type: http
      scheme: bearer
      description: >-
        Wallet session: the `access_token` from `POST /v1/auth/wallet-sessions`,
        for a user who brings their own wallet to a partner's web page. It acts
        for that wallet's account with no scope limit, and is bound to the
        `Origin` it signed in from: send exactly one `Origin` header with that
        value, or the request is `ORIGIN_REQUIRED` or `UNAUTHENTICATED`. It
        lasts at most 30 days and ends after 7 idle days or at `DELETE
        /v1/auth/wallet-sessions/current`.

````

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