> For the complete documentation index, see [llms.txt](https://docs.triton.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.triton.one/quickstart.md).

# Quickstart

Create your Triton account, copy your endpoint and token, and send your first request on Solana, Sui, or Monad.

{% stepper %}
{% step %}

#### Create your account

Sign up at [customers.triton.one](https://customers.triton.one/onboarding):

1. **Sign-in credentials:** choose **Individual** or **Business**. Enter your email, username, and password, then the code from the confirmation email.
2. **Personal details:** your real name, date of birth, address, and what you're building.
3. **Terms & conditions:** accept the terms.

Your details are checked against sanctions and politically exposed person (PEP) lists before you can pay. If your signup needs a manual review, Triton contacts you.

Business accounts also enter company details and name their administrators, beneficial owners, and authorized signatories. Only an authorized signatory can accept the terms.
{% endstep %}

{% step %}

#### Fund your balance

Set your deposit and pay in the Coinflow checkout.

* Minimum deposit: see the [pricing page](https://triton.one/pricing). Paid in USDC.
* Usable on Solana, Sui, and Monad. Usage is deducted as you go.
* Valid for 12 months. Non-refundable.
* Top up any time with **Buy Credits**, under your organization in the dashboard menu.

Can't pay in crypto, or need invoicing or a dedicated node? See [Plans and billing](/account-and-billing/plans-and-billing.md).
{% endstep %}

{% step %}

#### Choose your chains

On **Create your first endpoint**:

* **Project name:** any name.
* **Select your chains:** Solana, Sui, Monad. Each chain gets a mainnet and a test-network subscription (Solana devnet and testnet, Sui testnet, Monad testnet). Each subscription has its own endpoint and token.
* **Enter your domain to activate RPC endpoints** (optional): your app's domain without `https://`, for example `app.example.com`. If you leave it blank, the endpoints start inactive. Turn each one on with its switch under **Endpoints** in the subscription.

To add a chain later, contact support.
{% endstep %}

{% step %}

#### Copy your endpoint and token

In the [customer dashboard](https://customers.triton.one), under **Subscriptions**, click the subscription whose **Type** is the chain and network you want, for example **Solana Mainnet**.

<div data-with-frame="true"><figure><img src="https://1114586215-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoQO86QYVpwvJExgmA0oK%2Fuploads%2FBtVJsWRGUW9rQuNxipTq%2F02-home-subscriptions.png?alt=media&amp;token=2c564ddc-6c15-45fb-9836-07898e01ab3c" alt="Customer dashboard Home page, Subscriptions table. Callout 1 marks the subscription name. Callout 2 marks the Type column, for example Solana Mainnet." width="563"><figcaption><p>1: click the subscription name. 2: check its <strong>Type</strong>.</p></figcaption></figure></div>

Copy:

* **Endpoint name:** the first part of the hostname under **Endpoints** → **Hostname(s)**. For `abc123.mainnet.rpcpool.com`, it's `abc123`. Use it as `<your-endpoint>` in the next step.
* **Secret token:** under **RPC / gRPC Tokens**, click the token and copy **Secret token**. Or click **Copy** under **Connection String for Endpoint** for the full URL with the token.

{% hint style="info" %}
Never put the token in frontend code. Browser apps use the endpoint URL alone, authorized by allowed origins. See [Auth and security](/security/authentication.md).
{% endhint %}
{% endstep %}

{% step %}

#### Send your first request

Replace `<your-endpoint>` and `<your-token>`, then run. TypeScript examples use top-level `await`: set `"type": "module"` in `package.json`.

**Solana**

Get the current slot:

{% tabs %}
{% tab title="curl" %}
{% code overflow="wrap" %}

```bash
curl "https://<your-endpoint>.mainnet.rpcpool.com/<your-token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```

{% endcode %}
{% endtab %}

{% tab title="TypeScript" %}

```bash
npm install @solana/kit
```

{% code overflow="wrap" %}

```typescript
import { createSolanaRpc } from "@solana/kit";

const rpc = createSolanaRpc("https://<your-endpoint>.mainnet.rpcpool.com/<your-token>");
const slot = await rpc.getSlot().send();
console.log(slot);
```

{% endcode %}
{% endtab %}

{% tab title="Python" %}

```bash
pip install requests
```

{% code overflow="wrap" %}

```python
import requests

r = requests.post(
    'https://<your-endpoint>.mainnet.rpcpool.com/<your-token>',
    json={'jsonrpc': '2.0', 'id': 1, 'method': 'getSlot'},
)
print(r.json()['result'])
```

{% endcode %}
{% endtab %}

{% tab title="Rust" %}

```bash
cargo add solana-client
```

{% code overflow="wrap" %}

```rust
use solana_client::rpc_client::RpcClient;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = RpcClient::new(
        "https://<your-endpoint>.mainnet.rpcpool.com/<your-token>".to_string(),
    );
    println!("{}", client.get_slot()?);
    Ok(())
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

Expected response (curl):

```json
{ "jsonrpc": "2.0", "result": 458705877, "id": 1 }
```

**Sui**

Get the current reference gas price on Sui mainnet (GraphQL):

{% hint style="info" %}
GraphQL is on mainnet only. On testnet, use gRPC.
{% endhint %}

{% tabs %}
{% tab title="curl" %}
{% code overflow="wrap" %}

```bash
curl "https://<your-endpoint>.mainnet.sui.rpcpool.com/graphql" \
  -H "X-Token: <your-token>" \
  -H "Content-Type: application/json" \
  -d '{ "query": "{ epoch { referenceGasPrice } }" }'
```

{% endcode %}
{% endtab %}

{% tab title="TypeScript" %}
No install needed (built-in `fetch`, Node.js 18+).

{% code overflow="wrap" %}

```typescript
const res = await fetch("https://<your-endpoint>.mainnet.sui.rpcpool.com/graphql", {
  method: "POST",
  headers: { "Content-Type": "application/json", "X-Token": "<your-token>" },
  body: JSON.stringify({ query: "{ epoch { referenceGasPrice } }" }),
});
const { data } = (await res.json()) as { data: { epoch: { referenceGasPrice: string } } };
console.log(data.epoch.referenceGasPrice);
```

{% endcode %}
{% endtab %}

{% tab title="Python" %}

```bash
pip install requests
```

```python
import requests

r = requests.post(
    'https://<your-endpoint>.mainnet.sui.rpcpool.com/graphql',
    headers={'X-Token': '<your-token>'},
    json={'query': '{ epoch { referenceGasPrice } }'},
)
print(r.json()['data']['epoch']['referenceGasPrice'])
```

{% endtab %}

{% tab title="Rust" %}

```bash
cargo add reqwest --features blocking,json
cargo add serde_json
```

```rust
use serde_json::{json, Value};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let body: Value = reqwest::blocking::Client::new()
        .post("https://<your-endpoint>.mainnet.sui.rpcpool.com/graphql")
        .header("X-Token", "<your-token>")
        .json(&json!({ "query": "{ epoch { referenceGasPrice } }" }))
        .send()?
        .json()?;
    println!("{}", body["data"]["epoch"]["referenceGasPrice"]);
    Ok(())
}
```

{% endtab %}
{% endtabs %}

Expected response (curl):

```json
{ "data": { "epoch": { "referenceGasPrice": "100" } } }
```

**Monad**

Get the latest block number:

{% tabs %}
{% tab title="curl" %}
{% code overflow="wrap" %}

```bash
curl "https://<your-endpoint>.mainnet.monad.rpcpool.com/<your-token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
```

{% endcode %}
{% endtab %}

{% tab title="TypeScript" %}

```bash
npm install viem
```

{% code overflow="wrap" %}

```typescript
import { createPublicClient, http } from "viem";

const client = createPublicClient({
  transport: http("https://<your-endpoint>.mainnet.monad.rpcpool.com/<your-token>"),
});
console.log(await client.getBlockNumber());
```

{% endcode %}
{% endtab %}

{% tab title="Python" %}

```bash
pip install web3
```

{% code overflow="wrap" %}

```python
from web3 import Web3

w3 = Web3(Web3.HTTPProvider('https://<your-endpoint>.mainnet.monad.rpcpool.com/<your-token>'))
print(w3.eth.block_number)
```

{% endcode %}
{% endtab %}

{% tab title="Rust" %}

```bash
cargo add reqwest --features blocking,json
cargo add serde_json
```

{% code overflow="wrap" %}

```rust
use serde_json::{json, Value};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let body: Value = reqwest::blocking::Client::new()
        .post("https://<your-endpoint>.mainnet.monad.rpcpool.com/<your-token>")
        .json(&json!({ "jsonrpc": "2.0", "id": 1, "method": "eth_blockNumber", "params": [] }))
        .send()?
        .json()?;
    println!("{}", body["result"]);
    Ok(())
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

Expected response (curl):

```json
{ "jsonrpc": "2.0", "result": "0x6d5a263", "id": 1 }
```

{% endstep %}
{% endstepper %}

## Start building

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-solana">:solana:</i> <strong>Solana</strong></td><td>RPC, streaming, historical data, transaction sending, and trading APIs for Solana mainnet and devnet.</td><td><a href="https://docs.triton.one/solana/">Solana</a></td></tr><tr><td><i class="fa-droplet">:droplet:</i> <strong>Sui</strong></td><td>gRPC, Seal and Walrus for Sui mainnet and testnet. GraphQL and archival for mainnet.</td><td><a href="https://docs.triton.one/sui/">SUI</a></td></tr><tr><td><i class="fa-cube">:cube:</i> <strong>Monad</strong></td><td>Ethereum-compatible JSON-RPC and WebSocket endpoints for Monad mainnet and testnet.</td><td><a href="https://docs.triton.one/monad/">Monad</a></td></tr></tbody></table>

***

<i class="fa-life-ring">:life-ring:</i> Contact support by clicking the chat icon in your [customer dashboard](https://customers.triton.one)\ <i class="fa-briefcase">:briefcase:</i> Sales questions? [Contact us](https://triton.one/contact)\ <i class="fa-sparkles">:sparkles:</i> AI agent? Read [llms.txt](https://docs.triton.one/llms.txt)\ <i class="fa-rss">:rss:</i> Follow updates: [Blog](https://blog.triton.one) · [X](https://x.com/triton_one) · [YouTube](https://www.youtube.com/@triton_one_ltd) · [Telegram](https://t.me/tritonone) · [GitHub](https://github.com/rpcpool)
