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

# Introduction

> REST API reference for Convexity Infra: the backend that powers your on-chain products. Its core services are wallets, tokenization, and blockchain events, supported by authentication, payments, products, and subscriptions.

**Convexity Infra** is a suite of backend services that let your business build and
operate blockchain-enabled products, without standing up your own chain nodes,
custody, or payment rails. You integrate these APIs into your own application, and
Convexity runs the infrastructure behind them.

Its **core** services are **Wallet Infra** (provision HD wallets, sign and broadcast
transactions, and move value), **Tokenization** (issue tokenized assets and run mint,
burn, transfer, and yield operations), and **Blockchain Events** (stream decoded on-chain
events to your webhooks). Around them sit the supporting services (authentication,
payments, products, and subscriptions) that get you authorized and billed.

All services share one set of conventions: a single OAuth 2.0 bearer token, a
consistent JSON response envelope, uniform pagination, and a common error model.
Learn those once and every endpoint behaves the same way.

<Info>
  **Base URL**

  The base URL is `https://dev.api.withconvexity.com`. Every path in this reference is
  relative to that host.
</Info>

## Core services

<CardGroup cols={2}>
  <Card title="Wallet Infra" icon="wallet" href="/api-reference/wallet/generate-wallets">
    HD wallet lifecycle, balances, transfers, signing, and chain discovery.
  </Card>

  <Card title="Tokenization" icon="coins" href="/api-reference/tokenization/create-token">
    Issue tokenized assets: mint, burn, transfer, and run yield operations.
  </Card>

  <Card title="Blockchain Events" icon="satellite-dish" href="/api-reference/indexer/list-event-catalog">
    Subscribe to decoded on-chain events and inspect webhook delivery logs.
  </Card>
</CardGroup>

## Supporting services

<CardGroup cols={2}>
  <Card title="Auth-Edge" icon="key" href="/api-reference/auth-edge/generate-token">
    Exchange an API key for a short-lived OAuth 2.0 access token.
  </Card>

  <Card title="Projects" icon="gear" href="/api-reference/projects/regenerate-api-keys">
    Rotate your project's API keys and manage its IP allowlist.
  </Card>

  <Card title="Payments" icon="credit-card" href="/api-reference/payments/list-project-payments">
    List payments and mint deposit accounts for top-ups and subscriptions.
  </Card>

  <Card title="Products" icon="box" href="/api-reference/products/list-products">
    Browse the products and capabilities available to your project.
  </Card>

  <Card title="Subscriptions" icon="rotate" href="/api-reference/subscriptions/list-plans">
    List plans and manage your project's subscriptions.
  </Card>
</CardGroup>

## Quick start

The [Quickstart](/quickstart) walks these steps with runnable requests, from API
key to a funded project in about five minutes.

<Steps>
  <Step title="Register for an API key">
    There's no self-service signup: email
    [infra@withconvexity.com](mailto:infra@withconvexity.com) with your business
    details to receive a **test** key and a **live** (`sk_live_...`) key.
  </Step>

  <Step title="Get an access token">
    Exchange your live API key for a bearer token via the
    [Generate Token](/api-reference/auth-edge/generate-token) endpoint.
  </Step>

  <Step title="Call an endpoint">
    Send the token as `Authorization: Bearer <access_token>` on every request.
    See [Authentication](/getting-started/authentication) for the full flow.
  </Step>

  <Step title="Read the response envelope">
    Every response is wrapped in a `{ status, message, data }` envelope. See
    [Conventions](/getting-started/conventions).
  </Step>

  <Step title="Handle errors uniformly">
    Errors share a single shape across all services. See [Errors](/getting-started/errors).
  </Step>
</Steps>

## How requests are authorized

Tokens are minted by **Auth-Edge** from a project API key and carry the project and
business context plus a set of **scopes** and **capabilities**. Endpoints check those
claims before serving a request:

* **Live vs. test keys**: Most business endpoints reject test tokens with `403`. Use
  your `sk_live_...` key for production traffic.
* **Project context**: Blockchain Events endpoints require a token bound to a project and
  business.
* **Capabilities**: Fine-grained permissions (for example `indexer.subscribe.evm`)
  gate individual operations. A missing capability returns `403`.

Read [Authentication](/getting-started/authentication) before integrating.
