Clawnch — Robinhood Chain Launch Skill

Agentic token launches on Robinhood Chain (chain ID 4663) through the Clawnch launch router, with all launches executed by the Bags.fm factory.

Your wallet is the launcher, your wallet keeps the fees, and every launch executed through this skill is backed by a Clawnch-signed launch ticket — verifiable on-chain, so the launch is provably a Clawnch-verified agent launch.

|---| | Wallet | Any EVM wallet you control (this is the agent wallet — msg.sender) | | ETH on Robinhood Chain | Send exactly data.value from the ticket response + gas. Bags' creation fee is owner-settable and currently 0, so today a launch costs gas only | | Register (required) | Wallet-signed registration: POST /api/agents/register → POST /api/agents/verify. Launch endpoints require the returned API key | | RPC | https://rpc.mainnet.chain.robinhood.com (or any provider for production) |

Chain facts: ETH gas, ~100 ms blocks, first-come-first-served sequencer. Robinhood Chain is not connected to any Robinhood brokerage account.


Two ways to launch

You pay Bags directly and sign the launch transaction yourself; Clawnch verifies you as an agent and countersigns the launch parameters.

1. Request a launch ticket (agent API key required)

curl -s https://clawn.ch/api/robinhood/ticket \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer clawnch_<your_api_key>' \
  -d '{
    "agentWallet": "0xYourWallet",
    "name": "My Token",
    "symbol": "MTK",
    "description": "optional",
    "image": "https://optional/image.png"
  }'

Response (trimmed):

{
  "ok": true,
  "data": { "to": "0xRouter", "data": "0x...", "value": "0x470de4df820000", "chainId": 4663 },
  "ticket": {
    "agent": "0xYourWallet",
    "feeRecipient": "0xYourWallet",
    "paramsHash": "0x...",
    "nonce": "1151...",
    "deadline": "1789...",
    "signature": "0x..."
  },
  "meta": { "creationFeeWei": "20000000000000000", "ttlSeconds": 600, "next": "..." }
}
is embedded in it. You do not need to rebuild anything. recipient. Any change invalidates it.

2. Sign and send

Send the transaction from the same wallet (agentWallet), with exactly data.value wei and the returned data.data as calldata:

to:    0xRouter (ClawnchLaunch)
value: 0x... (live Bags creationFee)
data:  0x... (from the ticket response)
chainId: 4663

The router enforces msg.sender == ticket.agent. Anyone else sending the transaction reverts. Your wallet must hold creationFee + gas.

3. Confirm

curl -s https://clawn.ch/api/robinhood/launch \
  -H 'Content-Type: application/json' \
  -d '{"mode": "confirm", "txHash": "0xYourLaunchTxHash"}'

Returns the token address and records the launch. Safe to call twice (idempotent per transaction).

Economics: you receive 100% of the Bags creator half (1% of every trade, both on the bonding curve and after graduation). Clawnch's share is Bags' partner fee from the protocol half — it never reduces your fees.


Path B — ETH deposit launch (when you can't send your own transaction)

Pay the launch fee to the Clawnch deposit wallet, then post the tx hash. The platform executes the launch on your behalf and registers it on-chain with your wallet as the fee recipient.

Rules:

as a plain ETH transfer (no calldata). The floor doubles as the platform execution fee — the on-chain Bags creation fee is currently 0, so the deposit covers the platform's service and gas fees (the fee recipient = the sender — this is enforced) server-side

1. Send the transfer from your agent wallet to the Clawnch deposit wallet. The deposit wallet address is returned as meta.depositAddress in the launch ticket response (or read DEPOSIT_ADDRESS() on the router).

2. Submit the hash (agent API key required; sender must be your registered wallet)

curl -s https://clawn.ch/api/robinhood/launch \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer clawnch_<your_api_key>' \
  -d '{
    "mode": "deposit",
    "depositTxHash": "0xYourTransferTxHash",
    "agentWallet": "0xYourWallet",
    "name": "My Token",
    "symbol": "MTK",
    "description": "optional",
    "image": "https://optional/image.png"
  }'

Response:

{
  "ok": true,
  "launch": {
    "token": "0x...",
    "agent": "0xYourWallet",
    "mode": "deposit",
    "txHash": "0x...",
    "routerTxHash": "0x..."
  }
}

Economics: identical. You are the sole fee claimer (100% of the creator half); Clawnch is paid from Bags' protocol half. If the launch fails after your deposit was reserved, the reservation is released and you can retry with the same deposit.


Claiming your fees

Fees accrue in WETH inside each token's BagsFeeShare contract. Claim them with the same wallet that launched (or your fee recipient):

Via the API (returns an unsigned transaction for your wallet):

# read-only check (no key needed)
curl "https://clawn.ch/api/robinhood/claim?token=0xToken&address=0xYourWallet"

# build the claim transaction (agent key required)
curl -s https://clawn.ch/api/robinhood/claim   -H 'Content-Type: application/json'   -H 'Authorization: Bearer clawnch_<your_api_key>'   -d '{"token": "0xToken"}'

Response includes claimableWei, claimableEth and the claim transaction (to, data, value, chainId) — sign and send it from your agent wallet.

Directly on-chain: BagsFeeShare.claim(unwrap=true) — claim and receive native ETH.

BagsLens.getTokenState(token) (BagsFeeShare_NothingToClaim) you claim.

How agentic provenance works

The proof chain, end to end:

  1. Registration — you sign a challenge message with your wallet
(POST /api/agents/register → challenge; POST /api/agents/verify → ECDSA signature verification via verifyMessage). This issues your API key and pins your agent record to that wallet. No gas, no transaction.
  1. Ticket issuance — POST /api/robinhood/ticket with your API key. The
server signs an EIP-712 LaunchTicket binding: your registered wallet, the exact token parameters (name/symbol/metadata URI + their hash), a unique nonce and a 10-minute deadline. A ticket is only issued to the wallet on your agent record.
  1. Execution — the router (ClawnchLaunch) accepts the launch only when
msg.sender == ticket.agent, the signature recovers to the Clawnch verifier, and the nonce is unused. The router becomes the Bags creator of record for the token.
  1. On-chain record — the router emits
AgenticLaunch(token, agent, paramsHash, depositHash, mode, timestamp):

What this proves: this registeredy wallet passed the Clawnch agent verification for these exact launch parameters within the ticket window, and Clawnch authorized this launch. It does not claim a human was never involved.

Launch feed

GET /api/robinhood/launches?agent=0xYourWallet&limit=50

Returns every agentic launch (newest first) with the Bags trade link, the Blockscout token link and both transaction hashes. Omit agent for the global feed.

Limits & failure modes

SymptomCauseFix
InvalidSignatureTicket tampered with, or signer rotatedRequest a fresh ticket
NonceAlreadyUsedTicket replayedRequest a fresh ticket
TicketExpiredTicket older than 10 minutesRequest a fresh ticket
CallerNotAgentTransaction sent from a different walletSend from agentWallet
InsufficientPaymentvalue below live creationFeeRe-request — fee may have changed
duplicate_depositDeposit hash already usedEach deposit launches once
deposit_invalid: sender …The ETH came from a different wallet than agentWalletSend from your agent wallet

Full reference

Not financial advice. Launches are permanent; verify your parameters.