imbawallet-com Auth API

Register, assertion JWT, webhook, HMAC

Operations 6

POST /auth/v1/agent/register Identity-only register #
POST /auth/v1/agent/token Exchange assertion JWT for access token #
GET /auth/v1/partner/jwks JWKS for Partner and Agent access tokens #
PATCH /auth/v1/agent/webhook Set webhook URL, JWE key, or OTP email #
POST /auth/v1/agent/hmac/rotate Rotate HMAC secret #
POST /auth/v1/partner/token Exchange assertion JWT for access token #

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/imbawallet-com:imbawallet-com-auth-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

imbawallet-com-auth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Imbawallet Com Auth API
  license:
    name: Proprietary
    url: https://imbawallet.com
  version: '1.0'
  description: 'Operations tagged Auth across 2 of this provider''s published API definitions: agent.openapi.yaml, partner.openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://imbawallet.com
  description: Production (auth + retail /api)
tags:
- name: Auth
  description: Register, assertion JWT, webhook, HMAC
paths:
  /auth/v1/agent/register:
    post:
      operationId: registerAgent
      tags:
      - Auth
      summary: Identity-only register
      description: 'Creates an agent account and Ed25519 credential. Does **not** assign a

        TRON address and does **not** credit USDT.


        Optional `email` is the 3-D Secure mailbox (not SMS, not cardholder KYC).

        HMAC plaintext is returned **once** if `callback_url` is accepted.

        Repeat register does not return the secret.


        Caution **medium** or Agent API disabled → `503`.'
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
            example:
              public_key: '-----BEGIN PUBLIC KEY-----

                MCowBQYDK2VwAyEA...

                -----END PUBLIC KEY-----'
              email: agent-otp@example.com
      responses:
        '200':
          description: Agent identity created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterResponse'
        '400':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
    servers:
    - url: https://imbawallet.com
      description: Production (auth + retail /api)
  /auth/v1/agent/token:
    post:
      operationId: createAgentAccessToken
      tags:
      - Auth
      summary: Exchange assertion JWT for access token
      description: 'Sign a short-lived EdDSA assertion (`aud=imba-agent-api`, `iss` = decimal

        `client_id`, TTL ≤ 60s). Access token `typ=agent`, `client_id`, same JWKS

        as Partner (`GET /auth/v1/partner/jwks`).


        `under_attack` or Agent API disabled → `503` (includes this endpoint).

        Defaults: 30 assertions / min / kid, 60 / min / IP.'
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - assertion
              properties:
                assertion:
                  type: string
                  description: EdDSA JWT signed with the agent Ed25519 private key
            example:
              assertion: eyJhbGciOiJFZERTQSIsImtpZCI6Ii4uLiJ9...
      responses:
        '200':
          description: Access token issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
        '401':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
    servers:
    - url: https://imbawallet.com
      description: Production (auth + retail /api)
  /auth/v1/partner/jwks:
    get:
      operationId: getSharedJwks
      tags:
      - Auth
      summary: JWKS for Partner and Agent access tokens
      description: Same signing keys as Partner. Agents verify `typ=agent` access tokens against this JWKS.
      security: []
      responses:
        '200':
          description: JWK set
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
    servers:
    - url: https://imbawallet.com
      description: Production (auth + retail /api)
  /auth/v1/agent/webhook:
    patch:
      operationId: patchAgentWebhook
      tags:
      - Auth
      summary: Set webhook URL, JWE key, or OTP email
      description: 'IMBA generates the HMAC secret (CSPRNG). Plaintext is shown once.

        Email-only PATCH does not require a webhook row. Email is the 3-D Secure mailbox.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookPatchRequest'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookPatchResponse'
        '401':
          $ref: '#/components/responses/Error'
        '400':
          $ref: '#/components/responses/Error'
      security:
      - bearerAuth: []
    servers:
    - url: https://imbawallet.com
      description: Production (auth + retail /api)
  /auth/v1/agent/hmac/rotate:
    post:
      operationId: rotateAgentHmac
      tags:
      - Auth
      summary: Rotate HMAC secret
      description: Previous secret dies immediately. New plaintext shown once. Requires an existing callback_url (register or PATCH webhook). Without a webhook URL, 400 callback_url required before rotate.
      responses:
        '200':
          description: New HMAC secret
          content:
            application/json:
              schema:
                type: object
                properties:
                  hmac_secret:
                    type: string
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
      security:
      - bearerAuth: []
    servers:
    - url: https://imbawallet.com
      description: Production (auth + retail /api)
  /auth/v1/partner/token:
    post:
      operationId: createPartnerAccessToken
      tags:
      - Auth
      summary: Exchange assertion JWT for access token
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - assertion
              properties:
                assertion:
                  type: string
                  description: Short-lived EdDSA JWT signed with partner Ed25519 key
            example:
              assertion: eyJhbGciOiJFZERTQSIsImtpZCI6ImtleV8xIn0...
      responses:
        '200':
          description: Access token issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
        '401':
          $ref: '#/components/responses/Error'
    servers:
    - url: https://imbawallet.com
      description: Production
components:
  schemas:
    RegisterResponse:
      type: object
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
    RegisterRequest:
      type: object
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
    TokenResponse:
      type: object
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
    WebhookPatchRequest:
      type: object
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
    WebhookPatchResponse:
      type: object
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
  responses:
    Error:
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
x-refined-from:
- agent.openapi.yaml
- partner.openapi.yaml