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

# Quickstart

> Launch a token in 60 seconds

## What you need

* Solana wallet with some SOL for transaction fees
* Know how to sign transactions with your wallet

## Step 1: Check the API is up

<CodeGroup>
  ```bash curl theme={null}
  curl -X GET https://api.zcombinator.io/health
  ```

  ```javascript fetch theme={null}
  const response = await fetch('https://api.zcombinator.io/health');
  const health = await response.json();
  console.log(health);
  ```
</CodeGroup>

Expected response:

```json theme={null}
{
  "status": "healthy",
  "timestamp": "2024-01-15T10:30:00.000Z",
  "environment": {
    "hasRPC": true,
    "hasConfig": true,
    "hasDB": true
  }
}
```

## Step 2: Create your token

Send your token details to get an unsigned transaction:

<CodeGroup>
  ```javascript fetch theme={null}
  const launchData = {
    name: "My Token",
    symbol: "MTK",
    description: "A test token for demonstration",
    image: "https://example.com/token-image.png",
    website: "https://example.com",
    twitter: "https://twitter.com/mytoken",
    caEnding: "MTK", // Optional: vanity address ending
    payerPublicKey: "YOUR_WALLET_PUBLIC_KEY",
    quoteToken: "SOL" // Optional: "SOL" (default) or "ZC" (native launchpad token)
  };

  const response = await fetch('https://api.zcombinator.io/launch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(launchData)
  });

  const result = await response.json();
  ```

  ```bash curl theme={null}
  curl -X POST https://api.zcombinator.io/launch \
    -H "Content-Type: application/json" \
    -d '{
      "name": "My Token",
      "symbol": "MTK",
      "description": "A test token for demonstration",
      "payerPublicKey": "YOUR_WALLET_PUBLIC_KEY",
      "quoteToken": "SOL"
    }'
  ```
</CodeGroup>

## Step 3: Sign it

We give you back an unsigned transaction. Sign it with your wallet:

```javascript theme={null}
import { Transaction } from '@solana/web3.js';
import bs58 from 'bs58';

// Deserialize the transaction
const transactionBuffer = bs58.decode(result.transaction);
const transaction = Transaction.from(transactionBuffer);

// Sign with your wallet (example using Phantom)
const signedTransaction = await window.solana.signTransaction(transaction);
const signedTransactionBase58 = bs58.encode(signedTransaction.serialize());
```

## Step 4: Send it back

Send the signed transaction back to us and we'll put it on Solana:

<CodeGroup>
  ```javascript fetch theme={null}
  const confirmData = {
    signedTransaction: signedTransactionBase58,
    baseMint: result.baseMint,
    metadataUrl: result.metadataUrl,
    name: "My Token",
    symbol: "MTK",
    payerPublicKey: "YOUR_WALLET_PUBLIC_KEY"
  };

  const confirmResponse = await fetch('https://api.zcombinator.io/confirm-launch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(confirmData)
  });

  const confirmResult = await confirmResponse.json();
  console.log('Token launched!', confirmResult.transactionSignature);
  ```

  ```bash curl theme={null}
  curl -X POST https://api.zcombinator.io/confirm-launch \
    -H "Content-Type: application/json" \
    -d '{
      "signedTransaction": "SIGNED_TRANSACTION_BASE58",
      "baseMint": "BASE_MINT_ADDRESS",
      "metadataUrl": "METADATA_URL",
      "name": "My Token",
      "symbol": "MTK",
      "payerPublicKey": "YOUR_WALLET_PUBLIC_KEY"
    }'
  ```
</CodeGroup>

## Step 5: Check it worked

```javascript theme={null}
const verifyResponse = await fetch(`https://api.zcombinator.io/verify-token/${confirmResult.baseMint}`);
const verification = await verifyResponse.json();

if (verification.exists) {
  console.log('Token launched!');
} else {
  console.log('Something went wrong');
}
```

## What's next

<CardGroup cols={2}>
  <Card title="Claim your daily tokens" icon="coins" href="/api-reference/claims/eligibility">
    Get your 1M tokens every 24 hours.
  </Card>

  <Card title="Integration examples" icon="code" href="/integration/overview">
    See how to build this into your app.
  </Card>

  <Card title="Error handling" icon="triangle-exclamation" href="/errors/overview">
    What to do when things go wrong.
  </Card>

  <Card title="Rate limits" icon="gear" href="/configuration">
    Need more requests? DM us.
  </Card>
</CardGroup>
