One call. Yield starts.

import { ClicksClient } from '@clicks-protocol/sdk';

const clicks = new ClicksClient(signer);
await clicks.quickStart('100', agentAddress);
// 80 USDC → agent wallet (instant)
// 20 USDC → treasury yield route

That's it. No config. No dashboard. No human required.


What Clicks does

Every USDC payment your agent receives gets auto-split:

Payment in
    ├── 80% → Agent Wallet (liquid, instant)
    └── 20% → DeFi Yield (Aave V3 or Morpho, auto-routed to best APY)
                 │
                 └── Withdraw anytime → Agent gets principal + yield (minus 2% fee on yield only)
  • No lockup. Withdraw anytime.
  • No manual steps. Fully autonomous.
  • 2% fee on yield only. Never on principal.
  • Auto-rebalances between Aave V3 and Morpho for best APY.

Install

npm install @clicks-protocol/sdk ethers@^6

x402 + Coinbase Agentic Wallets

Clicks is designed to sit after x402-style payment flows on Base.

x402 handles authorization and payment. Clicks routes USDC after receipt:

import { ClicksClient } from '@clicks-protocol/sdk';
import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';

const wallet = new CoinbaseWalletSDK({ appName: 'YourAgent' });
const signer = wallet.makeWeb3Provider().getSigner();

const clicks = new ClicksClient(signer);
await clicks.quickStart('1000', agentAddress);

// Your agent now has a settlement policy
// 80% liquid for operations
// 20% routed through treasury yield
  • Same chain (Base), same USDC contract
  • 80% liquid for operations
  • 20% routed through treasury yield
  • No lockup, withdraw anytime

SDK

Quick Start (recommended)

One call: registers agent, approves USDC, splits first payment.

const result = await clicks.quickStart('100', agentAddress);
// result.registered → true (skips if already done)
// result.approved   → true (skips if allowance sufficient)
// result.paymentSplit → true

Individual operations

// Register
await clicks.registerAgent(agentAddress);

// Approve USDC spending
await clicks.approveUSDC('max');

// Receive payment (auto-splits)
await clicks.receivePayment('500', agentAddress);

// Check yield info
const info = await clicks.getYieldInfo();
// { activeProtocol: 'Morpho', aaveAPY: 700, morphoAPY: 950, ... }

// Withdraw everything
await clicks.withdrawYield(agentAddress);

// Custom yield split (5-50%)
await clicks.setOperatorYieldPct(30); // 30% to yield, 70% liquid

Read-only (no signer needed)

const clicks = new ClicksClient(provider); // provider, not signer

const agent = await clicks.getAgentInfo(agentAddress);
// { isRegistered: true, deposited: 1000000n, yieldPct: 20n }

const split = await clicks.simulateSplit('100', agentAddress);
// { liquid: 80000000n, toYield: 20000000n }

MCP Server

AI agents can discover and use Clicks via MCP:

npm install @clicks-protocol/mcp-server
CLICKS_PRIVATE_KEY=0x... clicks-mcp

11 tools available: clicks_quick_start, clicks_register_referral, clicks_get_agent_info, clicks_simulate_split, clicks_get_yield_info, clicks_get_referral_stats, clicks_receive_payment, clicks_withdraw_yield, clicks_register_agent, clicks_set_yield_pct, clicks_explain

Works with Claude, Cursor, LangChain, and any MCP-compatible client.


Referral Network

Referral contracts exist on-chain. Treat them as a separate attribution layer from the current SDK quickStart() helper.

Level Share of protocol fee
L1 (direct referral) 40%
L2 20%
L3 10%
Treasury 30%

The referred agent pays nothing extra. Rewards come from the 2% protocol fee once referral attribution has been registered through a dedicated flow.

Recommended flow:

const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);
const signature = await clicks.signReferralApproval(agentAddress, referrerAddress, deadline);

const result = await clicks.quickStartWithReferral(
  '100',
  agentAddress,
  referrerAddress,
  deadline,
  signature,
);

Important:

  • quickStart() handles treasury setup.
  • registerReferralWithSig() handles explicit attribution.
  • quickStartWithReferral() is a convenience wrapper over those two steps, not an atomic one-shot contract call.

Economics per $10k deposit at 7% APY:

Your tree Passive income/year
10 agents $56
100 agents $560
1,000 agents $9,800
10,000 agents $98,000

Agent Teams

Form squads, hit TVL milestones, earn bonus yield:

Tier TVL threshold Bonus yield
🥉 Bronze $50k +0.20%
🥈 Silver $250k +0.50%
🥇 Gold $1M +1.00%
💎 Diamond $5M +2.00%

Contracts (Base Mainnet)

Contract Address
ClicksRegistry 0x23bb...0C0a3
ClicksSplitterV4 0xB7E0...f3C8
ClicksYieldRouter 0x0531...EECD
ClicksFeeV2 0x8C4E...0fb5
ClicksReferral 0x1E5A...4ccC
Safe Multisig (Owner) 0xaD82...D6A9
USDC 0x8335...913

All contracts verified on Basescan. Owned by Gnosis Safe multisig — single-key compromise is not possible.

ERC-8004 Trustless Agent

Clicks is registered on the ERC-8004 Identity Registry on Base as agentId 45074. On-chain reputation accrues per completed agent job. Attestors who follow the Clicks Attestor Schema V1 become eligible for the reputation-aware fee multiplier (shipping in V5).


Architecture

clicks-protocol/
├── contracts/           Solidity (^0.8.20)
│   ├── ClicksSplitterV4    Splits payments, manages yield %
│   ├── ClicksYieldRouter   Routes to best APY (Aave/Morpho)
│   ├── ClicksFeeV2           2% fee collection on yield
│   ├── ClicksRegistry      Agent ↔ Operator mapping
│   └── ClicksReferral      Multi-level referral system
├── sdk/                 TypeScript SDK
├── mcp-server/          MCP Server (11 tools)
├── site/                Landing page + llms.txt + agent.json
└── test/                227 tests (Hardhat)

Agent Discovery


Connect Your AI Agent

The Clicks MCP server is live at https://mcp.clicksprotocol.xyz/mcp — connect any MCP-compatible client in seconds.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "clicks-protocol": {
      "url": "https://mcp.clicksprotocol.xyz/mcp"
    }
  }
}

OpenClaw

openclaw mcp set clicks-protocol --url https://mcp.clicksprotocol.xyz/mcp

Codex CLI

Add to .codex/config.json:

{
  "mcpServers": {
    "clicks-protocol": {
      "type": "url",
      "url": "https://mcp.clicksprotocol.xyz/mcp"
    }
  }
}

Gemini CLI

{
  "mcpServers": {
    "clicks-protocol": {
      "url": "https://mcp.clicksprotocol.xyz/mcp"
    }
  }
}

Available MCP Tools

Tool Description
get_protocol_stats TVL, APY, agent count
get_agent_info Check if an agent is registered
get_yield_info Yield balance for an agent
simulate_yield Project earnings over time
clicks://protocol/overview Resource: protocol overview

See examples/integrations/ for ready-to-use config files.


Works with

Any agent framework that handles USDC on Base:

x402 · LangChain · CrewAI · AutoGen · Eliza · OpenClaw · Claude · Cursor · Codex · Gemini · Hummingbot · Phidata


Development

npm install
npx hardhat compile
npx hardhat test          # 227 tests

License

MIT