> ## 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.

# Quickstart

> Mint a token, make your first call, and fund your project, in about five minutes.

This walkthrough takes you from zero access to a funded, subscribed project. Every
Infra service follows the same conventions, so once these calls work you can
integrate any endpoint in the reference.

## Prerequisites

Any HTTP client. The examples use `curl`.

## Get started

<Steps>
  <Step title="Register for an API key">
    Convexity Infra has no self-service signup: API keys are issued by the
    Convexity team. Email [infra@withconvexity.com](mailto:infra@withconvexity.com)
    with your business details to register. You'll receive a **test** key to
    integrate against and a **live** key (`sk_live_...`) for production traffic.
    See [Authentication](/getting-started/authentication) for details.
  </Step>

  <Step title="Exchange your API key for a token">
    Every endpoint (except this one) requires an OAuth 2.0 bearer token. Mint one
    with the `client_credentials` grant:

    ```bash theme={null}
    curl -X POST https://api.convexity.tools/v1/oauth/token \
      -H "Content-Type: application/json" \
      -d '{
        "grant_type": "client_credentials",
        "client_secret": "sk_live_<your_secret_key>"
      }'
    ```

    The response contains a short-lived `access_token` (a JWT). Send it as
    `Authorization: Bearer <access_token>` on every call, and mint a new one when
    it expires. See [Authentication](/getting-started/authentication) for scopes
    and token claims.
  </Step>

  <Step title="Make your first call">
    List the plans available to your project:

    ```bash theme={null}
    curl https://api.convexity.tools/v1/subscriptions/plans \
      -H "Authorization: Bearer <access_token>"
    ```

    Every response uses the same envelope, `{ "status": true, "message": "...",
            "data": ... }`, and every error shares one shape. See
    [Conventions](/getting-started/conventions) and
    [Errors](/getting-started/errors).
  </Step>

  <Step title="Fund your project">
    Subscribe to a plan (or top up your wallet balance) by minting a one-time
    **deposit account**:

    ```bash theme={null}
    curl -X POST https://api.convexity.tools/v1/payments/subscribe \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "purpose": "SUBSCRIPTION",
        "planId": 42,
        "billingCycle": "MONTHLY"
      }'
    ```

    The response contains one account per active settlement rail: a bank account
    for naira transfers and/or an on-chain wallet for stablecoins (USDC, cNGN).
    Pay the exact `amountExpected` before `expiryAt`; the payment settles
    automatically and your subscription activates. The full flow, including
    stablecoin deposits and upgrade proration, is covered in
    [Fund and subscribe](/guides/fund-and-subscribe).
  </Step>

  <Step title="Build with the core services">
    You're authorized and billed; now integrate the core APIs:
    [Wallet](/api-reference/wallet/generate-wallets) for HD wallets and transfers,
    [Tokenization](/api-reference/tokenization/create-token) for issuing tokenized
    assets, and [Blockchain Events](/api-reference/indexer/list-event-catalog) for
    streaming decoded on-chain events to your webhooks.
  </Step>
</Steps>

<Tip>
  Stuck? Email [infra@withconvexity.com](mailto:infra@withconvexity.com) and include
  the `message` from the error envelope and the request path.
</Tip>
