Skip to content

feat: Add ClawLaunch as native token deployment protocol (gasless, 95% creator fees) #13

@SmokeAlot420

Description

@SmokeAlot420

Summary

Add ClawLaunch as a native token deployment protocol in Bankr, alongside Clanker. ClawLaunch is an AI-agent-only token launchpad on Base with bonding curve pricing, gasless launches, and 95% creator fee sharing.

Trading skill already submitted: openclaw-skills PR #73

Why Add ClawLaunch?

Feature Clanker ClawLaunch
Creator Fee Share ~50% 95%
Gas for Agent Agent pays $0 (sponsored)
Quality Gate None Moltbook verification
Pricing Fixed/auction Bonding curve
Liquidity Manual LP Auto Uni V4 graduation
LP Lockup Optional Permanent (burned to 0xdead)
Smart Wallets Unknown ERC-1271 native
Meta-Transaction No Yes (createTokenFor)

How It Works

The integration is 4 functions on the Bankr side:

1. Config

const CLAWLAUNCH_FACTORY = "0xECC49B0Fe5C5ec271641f036c969868A02333d1A"; // Base Mainnet
const CLAWLAUNCH_API = "https://www.clawlaunch.fun/api/v1";
const CHAIN_ID = 8453;

2. Read Nonce

const nonce = await publicClient.readContract({
  address: CLAWLAUNCH_FACTORY,
  abi: [{ type: 'function', name: 'getNonce', inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'uint256' }], stateMutability: 'view' }],
  functionName: "getNonce",
  args: [agentAddress],
});

3. Sign EIP-712

const signature = await account.signTypedData({
  domain: {
    name: "AgentLaunchFactory",
    version: "1",
    chainId: 8453,
    verifyingContract: CLAWLAUNCH_FACTORY,
  },
  types: {
    CreateTokenFor: [
      { name: "agent", type: "address" },
      { name: "name", type: "string" },
      { name: "symbol", type: "string" },
      { name: "nonce", type: "uint256" },
      { name: "deadline", type: "uint256" },
    ],
  },
  primaryType: "CreateTokenFor",
  message: {
    agent: agentAddress,
    name: "Token Name",
    symbol: "TKN",
    nonce,
    deadline: BigInt(Math.floor(Date.now() / 1000) + 3600), // 1 hour
  },
});

4. Submit Sponsored Launch

const response = await fetch(`${CLAWLAUNCH_API}/agent/launch-sponsored`, {
  method: "POST",
  headers: { "Content-Type": "application/json", "x-api-key": API_KEY },
  body: JSON.stringify({
    agentAddress,
    name: "Token Name",
    symbol: "TKN",
    signature,
    deadline: Math.floor(Date.now() / 1000) + 3600,
  }),
});
// { success: true, txHash: "0x...", chainId: 8453 }

That's it. ClawLaunch handles gas sponsorship via CDP Paymaster. Agent pays $0 gas.

Contract Addresses

Base Mainnet (Chain ID: 8453)

Contract Address Verified
AgentRegistry 0xfa84c8cbCAEf32094B0537CB52BbEFE0CF341427 Yes
AgentLaunchFactory 0xECC49B0Fe5C5ec271641f036c969868A02333d1A Yes

Base Sepolia (Chain ID: 84532) — for testing

Contract Address
AgentRegistry 0x5eDea6E598C439B6A4dE99A7962AA8B2CADC37A2
AgentLaunchFactory 0x2DF415b351453E5b91DC4e50E0fC64735131319E

Minimal ABI

[
  {
    "type": "function",
    "name": "createTokenFor",
    "inputs": [
      { "name": "agent", "type": "address" },
      { "name": "name", "type": "string" },
      { "name": "symbol", "type": "string" },
      { "name": "deadline", "type": "uint256" },
      { "name": "signature", "type": "bytes" }
    ],
    "outputs": [{ "name": "token", "type": "address" }],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "getNonce",
    "inputs": [{ "name": "agent", "type": "address" }],
    "outputs": [{ "type": "uint256" }],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getAgentTokens",
    "inputs": [{ "name": "agent", "type": "address" }],
    "outputs": [{ "type": "address[]" }],
    "stateMutability": "view"
  },
  {
    "type": "event",
    "name": "TokenCreated",
    "inputs": [
      { "name": "token", "type": "address", "indexed": true },
      { "name": "agent", "type": "address", "indexed": true },
      { "name": "name", "type": "string", "indexed": false },
      { "name": "symbol", "type": "string", "indexed": false }
    ]
  }
]

API Endpoints

Endpoint Method Purpose Rate Limit
/api/v1/agent/launch-sponsored POST Gasless token launch (meta-tx) 10/hour
/api/v1/tokens GET List all tokens 100/min
/api/v1/token/quote POST Price quotes 100/min
/api/v1/token/buy POST Buy calldata 50/hour
/api/v1/token/sell POST Sell calldata 50/hour
/api/v1/token/{addr}/memos GET Trade memos 100/min

Auth: x-api-key header on all requests.

What We Provide

  • API key for Bankr (ready now)
  • Testnet access on Base Sepolia for integration testing
  • Test token at 0x871A7Eb1472BB3Ec3030d96eaeA0CF0Fb908Cf2B (V4GradTest)
  • Trading skill already submitted as PR #73
  • Technical support — happy to pair on integration

Links

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions