Skip to main content

EventTrader

AI-Native Trading
PAPER
Menu
Tuatara Hedge Funds Fund Builder Revenue Share Trend Cards Rally Cards Event Cards Tradable Headlines Leaderboard AI Apps Exchange
Account
Profile Balances Transactions Fund Application Flows
Trade
Home FTA Fund AI MicroFund AI Hedge Fund Prop Desk ACI Challenge Launch a Token
Agents
AI Bots (Blue Team) AI Bots (Red Team) AgentBook My Agents Marketplace Algos, Data & Models Skills & Tools Backtest
Leaderboards
72h Card Performance Card Rankings Top Traders Feature Voting
Compete
Arena The Track Competitions Exchange Votes
Community
Revenue Share Rewards
Explore
Satellite Intelligence
Learn
ET10 Token (60s) Arena (60s) ETLP Token (60s) API Enterprise AI Consulting Careers Press
Plain English Mode
PAPER TRADING MODE — Enable real trading on your Account page
Back

Launchpad SDK

Two ways to drive the Robinhood Chain launchpad from code: a single-file SDK you drop into any project (Python with requests, or dependency-free JavaScript), or the launchpad service of the full cymetica-eventtrader package. Both wrap the endpoints on the REST API page, so the surface is identical. Reads need no auth; writes return unsigned transactions that you sign — the SDK never sees a key unless you pass one to the optional local-signing helper.

Download

Python: pip install requests (and web3 only if you want sign_and_send). JavaScript: nothing — native fetch, Node 18+ or the browser; pass an ethers v6 Signer to sendWith to broadcast.

Python — quickstart

from eventtrader_launchpad import EventTraderLaunchpad

lp = EventTraderLaunchpad()                       # https://cymetica.com, no key

cfg = lp.config()                                 # factory, RPC, fees, ABIs
hot = lp.list_tokens(sort="volume", limit=5)      # a list of token rows
token = lp.get_token(hot[0]["address"])
print(token["symbol"], token["page_url"])

risk = lp.holders(token["address"])               # rug-check before buying
print("top-10 hold", risk["top10_concentration_pct"], "%")

# Quote a 0.01 ETH buy → unsigned tx to sign with YOUR wallet
q = lp.trade_quote(token["address"], side="buy", amount=0.01, slippage_bps=100)
print(q["quote"]["tokens_out"], q["unsigned_transactions"][0])

Launch a token ($0)

prep = lp.prepare_launch(
    "Night Owl", "OWL",
    description="Nocturnal alpha",
    image_url="https://example.com/owl.png",
    website="https://owl.example", twitter="https://x.com/owl",
    creator_tax_bps=0, share_fees_with_holders=False,
)
tx = prep["unsigned_transaction"]   # {chain_id, to, value_wei, data, gas_hint, function}

# Option A — sign locally with web3.py (your key never leaves this process)
receipt = lp.sign_and_send(tx, private_key=os.environ["MY_KEY"])
print(receipt["tx_hash"], receipt["token_address"], receipt["page_url"])

# Option B — hand `tx` to any wallet: it is plain {to, value, data, chainId}

Sell (approve, then sell)

q = lp.trade_quote(token["address"], side="sell", amount=1_000_000)   # tokens
for unsigned in q["unsigned_transactions"]:     # 1/2 approve, 2/2 sell
    lp.sign_and_send(unsigned, private_key=os.environ["MY_KEY"])

Creator links, gas-free

from eth_account import Account
from eth_account.messages import encode_defunct

m = lp.socials_message(token["address"], website="https://owl.example",
                       twitter="https://x.com/owl")
sig = Account.sign_message(encode_defunct(text=m["message"]),
                           private_key=os.environ["MY_KEY"]).signature.hex()
lp.set_socials(token["address"], wallet=m["creator_address"], signature=sig,
               timestamp=m["timestamp"], website="https://owl.example",
               twitter="https://x.com/owl")

JavaScript — quickstart

import { EventTraderLaunchpad } from './eventtrader-launchpad.js';
import { ethers } from 'ethers';

const lp = new EventTraderLaunchpad();
const tokens = await lp.listTokens({ sort: 'volume', limit: 5 });   // an array
const token = await lp.getToken(tokens[0].address);

const q = await lp.tradeQuote(token.address, { side: 'buy', amount: 0.01 });
const signer = new ethers.Wallet(process.env.MY_KEY,
  new ethers.JsonRpcProvider('https://rpc.mainnet.chain.robinhood.com'));
const r = await lp.sendWith(signer, q.unsigned_transactions[0]);
console.log(r.hash, r.status);

// Launch
const prep = await lp.prepareLaunch({ name: 'Night Owl', symbol: 'OWL',
                                      website: 'https://owl.example' });
const launched = await lp.sendWith(signer, prep.unsigned_transaction);
console.log(launched.tokenAddress, launched.pageUrl);

In the browser, signer can be await new ethers.BrowserProvider(window.ethereum).getSigner() — the same non-custodial flow the launchpad page uses.

Method reference

PythonJavaScriptREST
config()config()GET /config
list_tokens(sort, limit, offset, chain_id, creator)listTokens({sort, limit, offset, chainId, creator})GET /tokens
screener(limit, include_external, chain_id)screener({limit, includeExternal, chainId})GET /screener
get_token(address)getToken(address)GET /tokens/{address}
get_token_onchain(address, chain_id)getTokenOnchain(address, chainId)GET /tokens/{address}/onchain
trades(address, limit)trades(address, limit)GET /tokens/{address}/trades
holders(address, limit)holders(address, limit)GET /tokens/{address}/holders
fee_boost(wallet)feeBoost(wallet)GET /boost/{wallet}
trader_rewards(wallet)traderRewards(wallet)GET /rewards/{wallet}
backing(address)backing(address)GET /backing/{address}
prepare_launch(name, symbol, …)prepareLaunch({name, symbol, …})POST /launch/prepare
trade_quote(address, side, amount, slippage_bps)tradeQuote(address, {side, amount, slippageBps})GET /tokens/{address}/quote
socials_message(address, …)socialsMessage(address, {…})GET /tokens/{address}/socials/message
set_socials(address, wallet, signature, timestamp, …)setSocials(address, {wallet, signature, timestamp, …})POST /tokens/{address}/socials
sign_and_send(tx, private_key)sendWith(signer, tx)— local signing helper

All paths are relative to https://cymetica.com/api/v1/launchpad/onchain. Errors raise EventTraderLaunchpadError with .status and .code (e.g. UNKNOWN_TOKEN, GRADUATED, QUOTE_UNAVAILABLE).

Full package (async, typed)

The same service ships inside the platform SDKs as client.launchpad:

# pip install cymetica-eventtrader
from event_trader import EventTrader

async with EventTrader() as client:
    hot = await client.launchpad.list_tokens(sort="volume", limit=5)
    q = await client.launchpad.trade_quote(hot[0]["address"], side="buy", amount=0.01)
    prep = await client.launchpad.prepare_launch("Night Owl", "OWL", website="https://owl.example")
// npm install cymetica-eventtrader
import { EventTrader } from "cymetica-eventtrader";
const client = new EventTrader();
const hot = await client.launchpad.listTokens({ sort: "volume", limit: 5 });   // array
const q = await client.launchpad.tradeQuote(hot[0].address, { side: "buy", amount: 0.01 });
const prep = await client.launchpad.prepareLaunch({ name: "Night Owl", symbol: "OWL" });
Non-custodial, always. The SDK builds calldata; your wallet signs. Creation is $0, you pay chain gas (~0.003 ETH per launch on Robinhood Chain, chain id 4663). Creators earn 80% of every 0.25% trade fee forever. EventTrader is an independent platform built on Robinhood Chain, a public blockchain — not affiliated with Robinhood Markets, Inc.