+ Crear coin+ Crear
Robinhood Chain developer API

👨‍💻 Create Robinhood coins with API

Build an unsigned Direct V3 launch transaction, let the creator sign it in their own wallet, then verify the confirmed receipt and safely create the Launchpad token page. The optional first buy is a real atomic Uniswap V3 swap.

Production profile

Chain ID: 4663
Native asset: ETH
Pool: Uniswap V3, 1% fee
LP: permanently locked
Creator/protocol fees: 70% / 30%

Unsigned wallet transactions

Factory
0xb8d23013865fd72e93b08f0064b76e7ed199a0b5

Fee locker
0xe6af51e4974f2955140c083a9956321c98cb9688

Your Robinhood API key

Connect your wallet and your Robinhood API key is created automatically and shown here ready to copy.

Connect wallet to generate your Robinhood API key.

The secret is stored only in this browser and shown by the server once.

Launch flow

1. BuildRequest canonical unsigned calldata.
2. SignCreator sends it with a Robinhood Chain wallet.
3. VerifyBackend verifies receipt, LP lock and first-buy Swap, then persists.

Endpoints

GET /api/evm/robinhood/statusNetwork and readiness
POST /api/evm/robinhood/build-direct-v3-launchUnsigned launch transaction
POST /api/evm/robinhood/verify-direct-v3-launchReceipt verification and persistence
GET /api/evm/robinhood/creator-rewards?wallet=0x...Creator LP fees
POST /api/evm/robinhood/build-creator-rewards-claimUnsigned fee collection

Security model

  • Never send a private key or seed phrase.
  • The API never accepts a client-selected factory, router, pool or fee locker.
  • The wallet signs and broadcasts the transaction.
  • Persistence occurs only after accepted-factory receipt verification.
  • Browser integrations must send the current same-origin CSRF token.

cURL: check status

curl -sS https://launchpad.meme/api/evm/robinhood/status | jq .

cURL: build launch

CSRF_TOKEN="YOUR_CURRENT_SESSION_CSRF"
CREATOR="0xYourWallet"

curl -sS -X POST \
  https://launchpad.meme/api/evm/robinhood/build-direct-v3-launch \
  -H "Content-Type: application/json" \
  -H "X-CSRF-Token: ${CSRF_TOKEN}" \
  -d "{
    \"creator\":\"${CREATOR}\",
    \"name\":\"Example Coin\",
    \"symbol\":\"EXAMPLE\",
    \"first_buy_wei\":\"100000000000000\",
    \"csrf_token\":\"${CSRF_TOKEN}\"
  }"

JavaScript: wallet launch

const build = await fetch(
  '/api/evm/robinhood/build-direct-v3-launch',
  {
    method: 'POST',
    credentials: 'same-origin',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({
      creator: account,
      name: 'Example Coin',
      symbol: 'EXAMPLE',
      first_buy_wei: '100000000000000',
      csrf_token: csrfToken
    })
  }
).then(r => r.json());

if (!build.ok) throw new Error(build.message);

await ethereum.request({
  method: 'wallet_switchEthereumChain',
  params: [{chainId: '0x1237'}]
});

const txHash = await ethereum.request({
  method: 'eth_sendTransaction',
  params: [build.transaction]
});

Verify and create token page

const verified = await fetch(
  '/api/evm/robinhood/verify-direct-v3-launch',
  {
    method: 'POST',
    credentials: 'same-origin',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({
      tx_hash: txHash,
      creator: account,
      write: true,
      csrf_token: csrfToken,
      metadata: {
        name: 'Example Coin',
        symbol: 'EXAMPLE',
        description: 'Created through Robinhood API.'
      }
    })
  }
).then(r => r.json());

if (verified.redirect_ready) {
  location.href = verified.token_url;
}

Expected build response

{
  "ok": true,
  "transaction": {
    "chainId": "0x1237",
    "from": "0x...",
    "to": "0xb8d23013865fd72e93b08f0064b76e7ed199a0b5",
    "value": "0x221b262dd8000",
    "data": "0x..."
  },
  "policy": {
    "minimum_pool_liquidity_wei": "500000000000000",
    "first_buy_amount_wei": "100000000000000",
    "total_transaction_value_wei": "600000000000000"
  }
}
Production API v1

API-key authenticated launch flow

Server integrations use a Bearer API key and an idempotency key. The creator signs a deterministic launch intent with personal_sign; Launchpad verifies the signer, builds the same unsigned transaction used by the web creator, and independently verifies the confirmed receipt before persistence.

POST /api/v1/robinhood/media/uploadUpload and host a validated token logo
POST /api/v1/robinhood/launches/intentPrepare the deterministic creator message
POST /api/v1/robinhood/launches/buildVerify signature and return unsigned calldata
POST /api/v1/robinhood/launches/confirmVerify receipt, LP lock and first buy, then persist
GET /api/v1/robinhood/launches/status?launch_id=rhl_...Read idempotent launch state
GET /api/v1/robinhood/tokens/{address}Canonical token data
GET /api/v1/robinhood/tokens/{address}/tradesRPC-indexed external swaps
GET /api/v1/robinhood/tokens/{address}/candlesCanonical Launchpad candles

Upload token logo

curl -sS -X POST https://launchpad.meme/api/v1/robinhood/media/upload \
  -H "Authorization: Bearer lp_live_YOUR_KEY" \
  -F "image=@./logo.png"

Use the returned image_url in the launch intent. If image, website, X, Telegram, or description are omitted, Launchpad applies safe platform defaults.

1. Prepare intent

curl -sS -X POST https://launchpad.meme/api/v1/robinhood/launches/intent \
  -H "Authorization: Bearer lp_live_YOUR_KEY" \
  -H "Idempotency-Key: my-launch-001" \
  -H "Content-Type: application/json" \
  -d '{
    "creator":"0xYourWallet",
    "name":"Example Coin",
    "symbol":"EXAMPLE",
    "description":"Created through the Robinhood API",
    "image_url":"https://example.com/logo.png",
    "first_buy_wei":"100000000000000",
    "slippage_bps":100
  }'

2. Sign and build

// Sign intent.message with the creator wallet.
const signature = await ethereum.request({
  method: 'personal_sign',
  params: [intent.intent.message, creator]
});

const build = await fetch('/api/v1/robinhood/launches/build', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer lp_live_YOUR_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    launch_id: intent.launch_id,
    intent_signature: signature
  })
}).then(r => r.json());

await ethereum.request({method:'wallet_switchEthereumChain', params:[{chainId:'0x1237'}]});
const txHash = await ethereum.request({method:'eth_sendTransaction', params:[build.transaction]});

3. Confirm

curl -sS -X POST https://launchpad.meme/api/v1/robinhood/launches/confirm \
  -H "Authorization: Bearer lp_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"launch_id":"rhl_...","tx_hash":"0x..."}'

PHP example

$headers = [
  'Authorization: Bearer ' . getenv('LAUNCHPAD_API_KEY'),
  'Idempotency-Key: my-launch-001',
  'Content-Type: application/json'
];
// POST the same JSON shown above, sign intent.message in the creator wallet,
// then submit build.transaction and confirm the resulting tx hash.

Scopes and safety

New keys receive robinhood:launch:build, robinhood:launch:confirm, robinhood:launch:read and robinhood:market:read. The API never accepts a client-supplied factory, router, pool, locker or arbitrary calldata. API keys are stored as SHA-256 hashes and the full secret is shown only once.

Inicio Crear