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

# Quick Start Guide

> Get integrated with RebelFi

Get your first stablecoin allocation deployed and earning yield.

## Supported Blockchains

| Blockchain | Token Support | Status      |
| ---------- | ------------- | ----------- |
| Solana     | USDC, USDT    | Live        |
| Polygon    | USDC, USDT    | Live        |
| Ethereum   | USDC, USDT    | Live        |
| Base       | USDC          | Live        |
| Arbitrum   | USDC, USDT    | Coming Soon |

## Prerequisites

Before you begin, ensure you have:

* RebelFi account ([Request demo](https://calendly.com/alek-rebelfi/30min) to get started)
* Custody solution or ability to sign transactions

<Info>
  **Start with sandbox.** We recommend testing your integration in our [sandbox environment](/guides/sandbox) first, then switching to production when ready.
</Info>

## Step 1: Dashboard Setup (3 minutes)

<Info>
  **No-Code Option Available**: RebelFi's dashboard provides a complete interface for managing wallets, operations, and
  yield without writing any code. Perfect for getting started before migrating to API-based automation.
</Info>

### Create Your Account & Create a Wallet Profile

Wallet Profiles are how you group and configure SDK-managed wallets. You must create a profile before you can generate an SDK API key.

<Steps>
  <Step title="Navigate to Wallet Profiles">
    Go to **Settings → Wallet Profiles** in the dashboard
  </Step>

  <Step title="Create a Profile">
    Click **Create Profile** and configure:

    * **Name** — a descriptive label (e.g., "Customer Wallets", "Treasury Ops")
    * **Enabled Chains** — select which blockchains wallets in this profile can use
    * **Operation Timeout** — how long before unsigned operations expire (default: 120s)
    * **Gas Sponsorship** — optionally specify a gas sponsor wallet address
  </Step>

  <Step title="Save Your Profile">
    Click **Save**. Your profile is now ready to link to an API key.
  </Step>
</Steps>

### Generate API Key

<Steps>
  <Step title="Navigate to API Keys">
    Go to **Settings → API Keys** in the dashboard
  </Step>

  <Step title="Generate New Key">
    Click **Generate API Key**, provide a descriptive name, and **select the Wallet Profile** you created above. API keys must be linked to a profile.
  </Step>

  <Step title="Save Your Key">
    Copy and securely store your API key. **It will only be shown once.**

    ```bash theme={null}
    # Store in environment variable
    export REBELFI_API_KEY="rfk_prod_xxxxxxxxxxxxx"
    ```
  </Step>
</Steps>

<Warning>
  Treat API keys like passwords. Never commit them to version control or share them publicly.
</Warning>

## Step 2: Register Your First Wallet (3 minutes)

Wallets are registered via the SDK and automatically associated with the Wallet Profile linked to your API key.

```typescript theme={null}
import { RebelfiClient } from '@rebelfi/sdk';

const client = new RebelfiClient({
  apiKey: process.env.REBELFI_API_KEY
});

const wallet = await client.wallets.register({
  walletAddress: '0xYourEthereumAddress', // or Solana address
  blockchain: 'ethereum',                  // 'ethereum', 'polygon', 'base', or 'solana'
  userId: 'your-internal-user-id'           // optional: link to your user record
});

console.log('Wallet registered:', wallet.walletId);
```

Registration is idempotent — calling it again with the same address returns the existing wallet.

<Info>
  The blockchain must be enabled in your Wallet Profile's `enabledChains` configuration. If registration fails with a
  403, check that the chain is enabled.
</Info>

<Tabs>
  <Tab title="Production">
    Use the wallet address from your key management system (Fireblocks, BitGo, hardware wallet, etc.).
  </Tab>

  <Tab title="Quick Test">
    For testing, generate a wallet on testnet (Ethereum Sepolia, Polygon Amoy, Base Sepolia, or Solana devnet), fund it with test USDC, and register that address.

    <Warning>
      Test wallets are for development only. Use secure key management in production.
    </Warning>
  </Tab>
</Tabs>

## Step 3: Deploy Your First Allocation (2 minutes)

Now that your wallet is registered, let's deploy funds to yield!

### Option A: Deploy via SDK

The SDK's plan → sign → submit flow:

```typescript theme={null}
// 1. Find a strategy
const { venues } = await client.venues.list({ blockchain: 'ethereum', token: 'USDC' });
const strategy = venues[0].strategies[0];

// 2. Plan the supply operation (returns unsigned transactions)
const operation = await client.operations.supply({
  walletAddress: wallet.walletAddress,
  strategyId: strategy.strategyId,
  amount: '1000000000',  // 1000 USDC (6 decimals)
  tokenAddress: strategy.tokenAddress
});

// 3. Sign the transaction with your key management system
const signedTx = await yourKeyManager.sign(operation.transactions[0].unsignedTransaction);

// 4. Submit — either provide the hash after you broadcast...
const txHash = await yourKeyManager.broadcast(signedTx);
await client.transactions.submitHash({ operationId: operation.operationId, txHash });

// ...or let RebelFi broadcast for you
await client.transactions.submitSigned({
  operationId: operation.operationId,
  signedTransaction: signedTxBase64
});
```

### Option B: Deploy via REST API

```bash theme={null}
curl -X POST "https://api.rebelfi.io/v1/operations/supply" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "walletAddress": "YourWalletAddress...",
    "strategyId": 1,
    "amount": "500000000",
    "tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
  }'
```

## Step 4: Verify & Monitor

Your allocation should complete within 1-2 minutes (depending on blockchain confirmation times).

### Check Allocation Status

In your RebelFi dashboard:

* **Wallets** tab shows current balances (available, deployed)
* **Operations** tab shows operation history
* **Allocations** tab shows active yield positions

Or via API:

```bash theme={null}
curl "https://api.rebelfi.io/v1/allocations?walletAddress=YourWalletAddress..." \
  -H "x-api-key: YOUR_API_KEY"
```

<Info>
  Yield accrues in real-time. Check your allocation details to see current value and earnings.
</Info>

## What You've Accomplished

<Accordion title="✅ Account Setup" icon="user">
  Created your RebelFi account and generated API keys
</Accordion>

<Accordion title="✅ Wallet Integration" icon="wallet">
  Connected your custody wallet and enabled monitoring
</Accordion>

<Accordion title="✅ First Allocation" icon="chart-line">
  Created and deployed your first yield-earning allocation
</Accordion>

<Accordion title="✅ Monitoring Setup" icon="chart-mixed">
  Set up real-time tracking of operations and allocations
</Accordion>

## Next Steps

<CardGroup cols={2}>
  <Card title="Wallet Profiles" icon="layer-group" href="/guides/wallet-profiles">
    Configure chains, timeouts, and gas sponsorship for your profile
  </Card>

  <Card title="API Documentation" icon="code" href="/api-reference/introduction">
    Explore the complete API reference
  </Card>

  <Card title="Use Case Examples" icon="lightbulb" href="/guides/use-cases/exchanges">
    See how other companies integrate RebelFi
  </Card>

  <Card title="Understanding Operations" icon="diagram-project" href="/guides/how-it-works">
    Learn about the operation lifecycle and architecture
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="403 Forbidden on wallet registration" icon="ban">
    **Check:**

    * The blockchain you are registering is in your Wallet Profile's `enabledChains`
    * The Wallet Profile linked to your API key is enabled (not disabled or deleted)
  </Accordion>

  <Accordion title="Insufficient balance errors" icon="wallet">
    **Check:**

    * Wallet has enough funds for the amount requested
    * Funds are not already reserved by another operation (cancel it first)
    * Token balance is for the correct asset (USDC, etc.)
  </Accordion>

  <Accordion title="Operation expired before signing" icon="clock">
    **Cause:** Unsigned transactions expire (Solana: \~15s, EVM: \~60s before stale refresh).

    **Solution:** Call `GET /v1/operations/:id/unsigned-transactions` to get a fresh set of unsigned transactions, then sign and submit immediately.
  </Accordion>

  <Accordion title="Operation stuck in SUBMITTED" icon="spinner">
    **Possible causes:**

    * Transaction hash was submitted but the transaction failed on-chain
    * Blockchain congestion

    **Solution:** Check the blockchain explorer for the submitted `txHash`. If the transaction is lost, use `POST /v1/transactions/:operationId/recover` to re-associate a found txHash.
  </Accordion>
</AccordionGroup>

<Card title="Need Help?" icon="life-ring">
  Email [support@rebelfi.io](mailto:support@rebelfi.io)
</Card>
