# API Reference

Bootstrap Protocol exposes a public REST API for querying on-chain token configurations managed by the protocol. All endpoints return JSON.

**Base URL**

```
https://bootstrap-be-production.up.railway.app
```

***

### Tokens

#### Get All Tokens

Returns all token configurations registered with Bootstrap Protocol.

```
GET /api/tokens
```

**Authentication:** None required.

**Parameters:** None.

***

#### Response

**`200 OK`**

json

```json
{
  "tokens": [
    {
      "id": "<uuid>",
      "tokenMint": "<token-mint-address>",
      "poolAddress": "<pool-address>",
      "creatorWalletPublicKey": "<creator-wallet>",
      "teamWalletAddress": "<team-wallet>",
      "teamAllocationBps": 1000,
      "lpAllocationBps": 10000,
      "scheduleInterval": "daily",
      "feeBps": 50,
      "createdAt": "<iso-timestamp>",
      "nextRunAt": "<iso-timestamp>",
      "lastRunAt": "<iso-timestamp>",
      "isExistingToken": false,
      "creatorLocked": false,
      "unlockDate": 0,
      "name": "<token-name>",
      "symbol": "<token-symbol>",
      "imageUri": "<image-url>",
      "description": "<description>",
      "website": "<website-url>",
      "twitter": "<twitter-handle>",
      "telegram": "<telegram-link>"
    }
  ]
}
```

***

#### Response Fields

| Field                    | Type    | Description                                                                       |
| ------------------------ | ------- | --------------------------------------------------------------------------------- |
| `id`                     | string  | Unique identifier for the token configuration (UUID)                              |
| `tokenMint`              | string  | The token's mint address on Solana                                                |
| `poolAddress`            | string  | PumpSwap liquidity pool address associated with this token                        |
| `creatorWalletPublicKey` | string  | Public key of the wallet that created the Bootstrap configuration                 |
| `teamWalletAddress`      | string  | Wallet address that receives the team fee allocation                              |
| `teamAllocationBps`      | integer | Percentage of fees routed to the team wallet, in basis points (e.g. `1000` = 10%) |
| `lpAllocationBps`        | integer | Percentage of fees routed to LP provision, in basis points (e.g. `10000` = 100%)  |
| `scheduleInterval`       | string  | Frequency of automated compounding runs. One of `hourly`, `daily`, `weekly`       |
| `feeBps`                 | integer | Creator fee rate in basis points (e.g. `50` = 0.5%)                               |
| `createdAt`              | string  | ISO 8601 timestamp when the configuration was created                             |
| `nextRunAt`              | string  | ISO 8601 timestamp of the next scheduled compounding run                          |
| `lastRunAt`              | string  | ISO 8601 timestamp of the most recent compounding run                             |
| `isExistingToken`        | boolean | `true` if this configuration was applied to a pre-existing token post-bond        |
| `creatorLocked`          | boolean | `true` if the creator has locked the configuration on-chain                       |
| `unlockDate`             | integer | Unix timestamp of when the configuration unlocks. `0` if no lock is set           |
| `name`                   | string  | Token name                                                                        |
| `symbol`                 | string  | Token ticker symbol                                                               |
| `imageUri`               | string  | URL of the token's image                                                          |
| `description`            | string  | Token description                                                                 |
| `website`                | string  | Project website URL                                                               |
| `twitter`                | string  | Twitter/X handle                                                                  |
| `telegram`               | string  | Telegram group or channel link                                                    |

***

#### Error Responses

| Status | Message                 | Description                                                           |
| ------ | ----------------------- | --------------------------------------------------------------------- |
| `500`  | `Failed to list tokens` | An internal server error occurred while fetching token configurations |

***

#### Example Request

bash

```bash
curl https://bootstrap-be-production.up.railway.app/api/tokens
```

#### Example Response

json

```json
{
  "tokens": [
    {
      "id": "3f7a1c2e-9b4d-4e8f-a123-6d5e7f8a9b0c",
      "tokenMint": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
      "poolAddress": "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS",
      "creatorWalletPublicKey": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
      "teamWalletAddress": "HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH",
      "teamAllocationBps": 1000,
      "lpAllocationBps": 10000,
      "scheduleInterval": "daily",
      "feeBps": 50,
      "createdAt": "2026-02-14T12:00:00.000Z",
      "nextRunAt": "2026-02-15T12:00:00.000Z",
      "lastRunAt": "2026-02-14T12:00:00.000Z",
      "isExistingToken": false,
      "creatorLocked": true,
      "unlockDate": 1770000000,
      "name": "Bootstrap",
      "symbol": "BOOTSTRAP",
      "imageUri": "https://example.com/bootstrap.png",
      "description": "The protocol that compounds for you.",
      "website": "https://bootstrapprotocol.xyz",
      "twitter": "@bootstrap",
      "telegram": "https://t.me/bootstrap"
    }
  ]
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bootstrapliq.fun/api-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
