# Quickstart (/platform/quickstart)

> Rent a Solana RPC node and make your first JSON-RPC call to Corvus in a couple of minutes, from curl, TypeScript or Rust.



Get a Solana RPC endpoint and make your first call. The whole thing takes a couple of minutes.

## 1. Rent a node

Head to the [dashboard](https://dashboard.corvus-labs.io) and pick your RPS, TPS and a region. What comes back looks like this:

```text
http://fra.corvus-labs.io:8899
```

The five RPC metros are `fra`, `ams`, `lon`, `nyc` and `tyo`.

## 2. Allowlist the machine you'll call from

Standard endpoints know you by your registered public egress IP. Run this on the host that will actually make the calls:

```bash
curl -s https://api.ipify.org
```

Paste what it prints into the dashboard.

## 3. Make your first call

```bash
curl -s http://fra.corvus-labs.io:8899 \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```

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

Corvus serves the complete Solana JSON-RPC API, so [Solana's reference](https://solana.com/docs/rpc) is the method list.

## 4. Point a client at it

<Tabs items={['TypeScript', 'Rust']}>
  <Tab>
    ```ts
    import { Connection } from '@solana/web3.js';

    const connection = new Connection('http://fra.corvus-labs.io:8899', {
      commitment: 'processed',
      wsEndpoint: 'ws://fra.corvus-labs.io:8900',
    });

    console.log(await connection.getSlot());
    ```
  </Tab>

  <Tab>
    ```rust
    use solana_client::rpc_client::RpcClient;

    let client = RpcClient::new("http://fra.corvus-labs.io:8899".to_string());
    println!("{}", client.get_slot()?);
    ```
  </Tab>
</Tabs>

## Next steps

<Cards>
  <Card title="Solana RPC & WebSocket" href="/solana-rpc" description="Methods, batching, and PubSub subscriptions" />

  <Card title="Yellowstone gRPC" href="/solana-rpc/grpc" description="Filtered account, transaction and slot streams" />

  <Card title="Rate limits" href="/solana-rpc/limits" description="What each method costs against your RPS" />

  <Card title="Errors" href="/solana-rpc/errors" description="Every code and message prefix, and which are retryable" />
</Cards>

`sendTransaction` works here too; it draws on TPS rather than RPS ([Submit Solana transactions](/solana-rpc/transactions)). [Falcon](/falcon) covers submission over QUIC and UDP, and [aRPC](/arpc/quickstart) covers pre-execution streams. If anything blocks you, we're on [Discord](https://discord.gg/corvus-labs).
