--- name: robinhood-net-token-launch description: > Launch Net Protocol Netr memecoins on Robinhood Chain. Use when the user says "launch a Robinhood token", "deploy a memecoin through Net Protocol", "create a Netr token on Robinhood", "buy the token after launch", or needs Bankr-backed or private-key-backed deployment to chain 4663. Supports direct NET_PRIVATE_KEY signing, Bankr wallet API signing, encode-only transaction generation, gas bridging through Bankr, and post-launch verification. allowed-tools: Bash(node:*), Bash(npm:*), Bash(npx:*), Bash(netp:*), Bash(bankr:*), Bash(jq:*), Bash(curl:*) metadata: author: Axiom version: "1.0.0" tags: [net-protocol, robinhood-chain, memecoin, netr, bankr, evm] license: MIT compatibility: Requires Node.js 20+, @net-protocol/cli 0.2.7+, Robinhood Chain RPC, and either NET_PRIVATE_KEY or Bankr CLI/API access. --- # Robinhood Net Token Launch Launch Netr memecoins on Robinhood Chain through Net Protocol, with either a private key or Bankr-managed wallet signing. ## Quick decision guide | Situation | Use | Key command | |---|---|---| | You can hold a private key locally | Direct `netp` deploy | `netp token deploy ... --chain-id 4663 --private-key "$NET_PRIVATE_KEY"` | | You cannot expose private keys | Bankr signer path | `scripts/robinhood-netr-launch.mjs --signer bankr ...` | | You only want calldata for another signer | Encode only | `scripts/robinhood-netr-launch.mjs --signer encode ...` | | Wallet has no ETH on Robinhood | Bridge gas first | `bankr agent prompt 'Bridge ... ETH from Base to Robinhood Chain...'` | | Need to buy after launch | Bankr swap prompt | `bankr agent prompt 'Buy ... ETH worth of TOKEN on Robinhood Chain...'` | ## Constants | Item | Value | |---|---| | Chain | Robinhood Chain | | Chain ID | `4663` | | RPC | `https://rpc.mainnet.chain.robinhood.com` | | Explorer tx | `https://robinhoodchain.blockscout.com/tx/` | | Explorer address | `https://robinhoodchain.blockscout.com/address/` | | Net app token URL | `https://netprotocol.app/app/token/robinhood/` | | Netr supply | `100,000,000,000` tokens, 18 decimals | | Typical deploy gas observed | about `8.36M` gas | ## Install / update tooling ```bash npm install -g @net-protocol/cli@latest netp --version # must be 0.2.7 or newer for Robinhood support netp chains | grep -i robinhood ``` For Bankr signing: ```bash bankr whoami bankr wallet portfolio ``` Do not print API keys or private keys. Bankr CLI normally stores credentials in `~/.bankr/config.json`. If an agent runtime supports only environment variables, set `BANKR_API_KEY` outside the chat/session and let the CLI read it. Never commit it. ## Private-key launch path Use this only when the user explicitly allows local private-key signing and the runtime is trusted. ```bash export NET_PRIVATE_KEY='0x...' # outside logs and chat netp token deploy \ --name "Hoodie" \ --symbol "HOODIE" \ --image "https://www.netprotocol.app/icon.png" \ --chain-id 4663 \ --rpc-url https://rpc.mainnet.chain.robinhood.com \ --private-key "$NET_PRIVATE_KEY" ``` Optional initial buy: ```bash netp token deploy \ --name "Hoodie" \ --symbol "HOODIE" \ --image "https://www.netprotocol.app/icon.png" \ --initial-buy "0.0005" \ --chain-id 4663 \ --rpc-url https://rpc.mainnet.chain.robinhood.com \ --private-key "$NET_PRIVATE_KEY" ``` ## Bankr signer launch path Use this when the agent must not touch raw private keys. The helper builds calldata for the Bankr wallet address, then submits it through `bankr wallet submit json`. ```bash cd agent-skills/skills/robinhood-net-token-launch npm install node scripts/robinhood-netr-launch.mjs \ --signer bankr \ --name "Hoodie" \ --symbol "HOODIE" \ --image "https://www.netprotocol.app/icon.png" ``` The helper: 1. Reads the Bankr EVM wallet address from `bankr whoami`. 2. Builds the Netr deploy transaction with that address as `deployer`. 3. Estimates gas against Robinhood RPC. 4. Checks wallet ETH balance on Robinhood. 5. Submits via Bankr if balance is sufficient. 6. Verifies `netp token info` after submission. ### Bridge gas through Bankr first If the Bankr wallet has ETH on Base but none on Robinhood, bridge a small amount before deployment: ```bash bankr agent prompt 'Bridge 0.001 ETH from my Base wallet to Robinhood Chain, same EVM wallet address, for deployment gas. Do not trade or buy tokens. Return the transaction hash or exact blocker.' ``` Observed deploy cost was about `0.00017 ETH`; bridge at least `0.001 ETH` to leave room for retries and post-launch buys. ## Encode-only path Use this for multisigs, hardware wallets, remote signers, or audits. ```bash node scripts/robinhood-netr-launch.mjs \ --signer encode \ --deployer 0xYourWallet \ --name "Hoodie" \ --symbol "HOODIE" \ --image "https://www.netprotocol.app/icon.png" \ --out ./hoodie-robinhood-tx.json ``` Submit the generated transaction object with any signer that supports `{to, data, value, chainId}`. ## Buy after launch Bankr can buy on Robinhood Chain after the token exists: ```bash bankr agent prompt 'Buy 0.0005 ETH worth of HOODIE token 0xTokenAddress on Robinhood Chain from my Bankr EVM wallet. Return transaction hash or exact blocker. Do not bridge, do not buy any other token.' ``` Verify the token balance directly: ```bash node scripts/verify-erc20-balance.mjs \ --token 0xTokenAddress \ --holder 0xYourWallet ``` ## Verification checklist After deployment, verify all of these before announcing success: ```bash TOKEN=0xTokenAddress TX=0xDeployTx netp token info --address "$TOKEN" --chain-id 4663 --json curl -s https://rpc.mainnet.chain.robinhood.com \ -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["'"$TX"'"]}' | jq ``` User-facing receipts: ```text Token: https://netprotocol.app/app/token/robinhood/ Explorer: https://robinhoodchain.blockscout.com/address/ Deploy tx: https://robinhoodchain.blockscout.com/tx/ ``` Public proof pattern, using the Hoodie launch as the reference case: ```text Hoodie / HOODIE was launched by Axiom on Robinhood Chain through Net Protocol. Social receipt: https://x.com/aspynpalatnick/status/2072545859003117987 ``` ## Gotchas - **`netp --encode-only` defaults deployer to zero address unless you supply a private key.** For Bankr or external signing, the deployer must be the actual wallet address or the predicted address and calldata will be wrong. Use the helper's `--signer bankr` or `--signer encode --deployer 0x...` path. - **Old `netp` versions reject Robinhood Chain.** Upgrade to `@net-protocol/cli@0.2.7` or newer; older versions say chain 4663 is unsupported. - **Bankr may say `insufficient_funds_for_gas` even after a tiny bridge.** The deploy costs about `8.36M` gas. Bridge enough native ETH to Robinhood, not just the exact estimate. - **Bankr portfolio may omit new ERC-20s.** Verify HOODIE or any new token with `balanceOf` on Robinhood RPC, not only with `bankr wallet portfolio`. - **The browser app can launch too, but wallet modals may block automation.** CLI plus Bankr signer is more reliable and does not require interacting with extension popups. - **Do not commit secrets.** No `.env`, `NET_PRIVATE_KEY`, Bankr API key, wallet config, or generated transaction containing secrets belongs in git. Calldata JSON is public-safe but still review before committing. ## Troubleshooting | Issue | Cause | Fix | |---|---|---| | `Chain 4663 is not supported` | Old `netp` | `npm install -g @net-protocol/cli@latest` | | `simulation_reverted` from Bankr | Calldata built for wrong deployer, often zero address | Rebuild with actual Bankr EVM address | | `insufficient_funds_for_gas` | No native ETH on Robinhood | Bridge ETH from Base using Bankr, then retry | | `Token not found` after tx | RPC/indexer lag or wrong predicted address | Wait one block, then run `netp token info` with the predicted address from the same tx build | | Wallet modal hangs in browser | Extension popup not controllable | Use Bankr CLI path instead | | Buy succeeds but portfolio omits token | Bankr token list lag | Use `verify-erc20-balance.mjs` | ## Security rules - Never ask the user to paste a private key into chat. - Prefer Bankr signer when available because raw keys never enter the agent runtime. - If using `NET_PRIVATE_KEY`, set it outside logs and unset it after launch. - Never run with `set -x` or verbose flags that might echo secrets. - Always show public receipts only: tx hash, token address, explorer URL, Net URL.