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

# Fund the client's wallet with testnet tokens

> Requests testnet tokens for the client's wallet on a supported testnet chain.
Rate-limited to one request per 24 hours per client.

**Supported testnet chains:** Sepolia, Base Sepolia, Monad Testnet, Celo Alfajores,
Solana Devnet, Tron Nile, Tron Shasta, Stellar Testnet, Bitcoin Segwit Testnet.




## OpenAPI

````yaml /openapi/client-api.yaml post /clients/me/fund
openapi: 3.1.0
info:
  title: Portal Client API
  version: '3.0'
  description: >
    The Portal Client API provides endpoints for managing wallets, building
    transactions,

    and interacting with blockchain networks. All endpoints require
    authentication via a

    Client API Key or Client Session Token (CST) passed as a Bearer token.


    ## Base URL

    `https://api.portalhq.io/api/v3`


    ## Authentication

    Include your Client API Key or Client Session Token as a Bearer token in the

    `Authorization` header of every request.


    ## Chain ID Format

    Chain parameters use either friendly names (e.g. `ethereum`, `solana`) or
    CAIP-2 format

    (e.g. `eip155:1`, `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`). When using
    CAIP-2 format

    in URLs, ensure the colon is URI-encoded (`%3A`).
servers:
  - url: https://api.portalhq.io/api/v3
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Clients
    description: Core client management endpoints
  - name: Wallet
    description: >-
      Read wallet state — balances, NFTs, transaction history, capabilities, and
      transaction details
  - name: Transactions
    description: Build, broadcast, and evaluate blockchain transactions
  - name: Funding
    description: Fund wallets with testnet tokens
  - name: Wallet Shares
    description: Manage signing and backup share pairs
  - name: Delegations
    description: Manage token approvals, revocations, and delegated transfers
  - name: Session Keys
    description: Manage EIP-7702 session keys for smart accounts
  - name: 0x
    description: Token swap endpoints powered by the 0x protocol
  - name: Yield.xyz
    description: Yield opportunities and staking actions powered by Yield.xyz
  - name: Li.Fi
    description: Cross-chain swaps and bridging powered by Li.Fi
  - name: Blockaid
    description: Transaction and address security scanning powered by Blockaid
  - name: Hypernative
    description: >-
      Transaction, address, token, and NFT security scanning powered by
      Hypernative
  - name: Noah
    description: KYC onboarding, payins, and payouts powered by Noah
  - name: Meld
    description: Buy and sell crypto with fiat through aggregated providers powered by Meld
  - name: EIP-7702
    description: EIP-7702 account type detection and authorization management
  - name: Deprecated
    description: >-
      Legacy endpoints scheduled for removal. Use the newer equivalents listed
      in each endpoint's description.
paths:
  /clients/me/fund:
    post:
      tags:
        - Funding
      summary: Fund the client's wallet with testnet tokens
      description: >
        Requests testnet tokens for the client's wallet on a supported testnet
        chain.

        Rate-limited to one request per 24 hours per client.


        **Supported testnet chains:** Sepolia, Base Sepolia, Monad Testnet, Celo
        Alfajores,

        Solana Devnet, Tron Nile, Tron Shasta, Stellar Testnet, Bitcoin Segwit
        Testnet.
      operationId: fundClient
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FundRequest'
            example:
              chainId: eip155:11155111
              token: USDC
              amount: '10'
      responses:
        '200':
          description: >
            Fund request processed. The response contains either `data` (on
            success) or

            `error` (on failure), but not both.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundResponse'
              examples:
                success:
                  summary: Successful funding
                  value:
                    data:
                      explorerUrl: https://sepolia.etherscan.io/tx/0xabc123...
                      txHash: 0xabc123...
                    metadata:
                      amount: '10'
                      chainId: eip155:11155111
                      clientId: clientId
                      custodianId: custodianId
                      environmentId: environmentId
                      token: USDC
                error:
                  summary: Funding error
                  value:
                    error:
                      id: fund_error
                      message: Insufficient faucet balance
                    metadata:
                      amount: '10'
                      chainId: eip155:11155111
                      clientId: clientId
                      custodianId: custodianId
                      environmentId: environmentId
                      token: USDC
        '400':
          description: Bad request - invalid chain, token, or amount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - invalid or missing authentication token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limited - only one fund request per 24 hours per client
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    FundRequest:
      type: object
      required:
        - chainId
        - token
        - amount
      properties:
        chainId:
          type: string
          description: >
            The testnet chain ID in CAIP-2 format (e.g. `eip155:11155111` for
            Sepolia).
        token:
          type: string
          description: The token symbol to fund (e.g. `USDC`, `ETH`).
        amount:
          type: string
          description: The amount to fund as a numeric string. Must be greater than zero.
    FundResponse:
      type: object
      properties:
        data:
          type: object
          nullable: true
          description: Present on success, null on failure.
          properties:
            explorerUrl:
              type: string
              description: URL to view the funding transaction on a block explorer.
            txHash:
              type: string
              description: The funding transaction hash.
        error:
          type: object
          nullable: true
          description: Present on failure, null on success.
          properties:
            id:
              type: string
              description: Error identifier.
            message:
              type: string
              description: Human-readable error message.
        metadata:
          type: object
          properties:
            amount:
              type: string
              description: The requested amount.
            chainId:
              type: string
              description: The chain ID.
            clientId:
              type: string
              description: The client ID.
            custodianId:
              type: string
              description: The custodian ID.
            environmentId:
              type: string
              description: The environment ID.
            token:
              type: string
              description: The requested token.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Client API Key or Client Session Token (CST). Pass as a Bearer token in
        the

        Authorization header.

````