Clicks Protocol yield management tools for LangChain agents on Base
Project description
Clicks Protocol — LangChain Integration
On-chain yield management tools for LangChain agents on Base.
Powered by Clicks Protocol
What It Does
Gives your LangChain agent the ability to earn yield on idle USDC. The agent can autonomously split funds 80/20: 80% stays liquid for operations, 20% earns 4-8% APY on-chain via Clicks Protocol on Base.
Installation
pip install clicks-langchain
Or from source:
git clone https://github.com/clicks-protocol/clicks-langchain
cd clicks-langchain
pip install -e .
Prerequisites
- Python >= 3.9
- Node.js >= 18 (for SDK bridge)
@clicks-protocol/sdkinstalled:npm install @clicks-protocol/sdk
Environment Variables
export CLICKS_PRIVATE_KEY="your-agent-wallet-private-key"
export CLICKS_RPC_URL="https://mainnet.base.org" # optional, defaults to Base mainnet
export CLICKS_SDK_PATH="/path/to/sdk" # optional, defaults to cwd
Quick Start
from langchain.chat_models import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from clicks_langchain import get_clicks_tools
# Get all Clicks Protocol tools
tools = get_clicks_tools()
# Create an agent with yield management capabilities
llm = ChatOpenAI(model="gpt-4", temperature=0)
agent = initialize_agent(
tools,
llm,
agent=AgentType.OPENAI_FUNCTIONS,
verbose=True,
)
# The agent can now manage its own treasury
agent.run("Check my USDC balance and yield status for address 0xYourAgent...")
agent.run("I have 5000 idle USDC. Activate yield on it.")
agent.run("What's the current APY on Clicks Protocol?")
Available Tools
| Tool | Description | When to Use |
|---|---|---|
clicks_activate_yield |
Split USDC 80/20 to earn yield | Agent has idle USDC not needed immediately |
clicks_withdraw_yield |
Withdraw all yield + deposits | Agent needs maximum liquidity |
clicks_check_balance |
View liquid vs. yield balances | Before spending decisions |
clicks_get_apy |
Get current APY rate | Evaluating whether to activate yield |
clicks_simulate_split |
Preview split without moving funds | Planning treasury allocation |
Example: Treasury Management Agent
from langchain.chat_models import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from langchain.memory import ConversationBufferMemory
from clicks_langchain import get_clicks_tools
AGENT_ADDRESS = "0xYourAgentAddress"
SYSTEM_PROMPT = """You are a treasury management agent. Your job is to maximize
yield on idle USDC while keeping enough liquid for operations.
Rules:
1. Always check balance before activating yield
2. Keep at least 1000 USDC liquid at all times
3. Activate yield on any idle amount above 1000 USDC
4. Check APY weekly and report changes
5. Withdraw yield if APY drops below 2%
"""
tools = get_clicks_tools()
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
agent = initialize_agent(
tools,
ChatOpenAI(model="gpt-4", temperature=0),
agent=AgentType.OPENAI_FUNCTIONS,
memory=memory,
system_message=SYSTEM_PROMPT,
verbose=True,
)
# Run the agent
agent.run(f"Check the treasury status for {AGENT_ADDRESS} and optimize yield allocation.")
Using Individual Tools
from clicks_langchain import (
ClicksActivateYieldTool,
ClicksCheckBalanceTool,
ClicksGetAPYTool,
ClicksSDKBridge,
)
# Create SDK bridge with explicit config
sdk = ClicksSDKBridge(
rpc_url="https://mainnet.base.org",
private_key="your-key",
)
# Use individual tools
balance_tool = ClicksCheckBalanceTool(sdk=sdk)
print(balance_tool.run({"agent_address": "0xYourAgent"}))
apy_tool = ClicksGetAPYTool(sdk=sdk)
print(apy_tool.run({}))
Contract Addresses (Base Mainnet)
| Contract | Address |
|---|---|
| Registry | 0x23bb0Ea69b2BD2e527D5DbA6093155A6E1D0C0a3 |
| Splitter | 0xc96C1a566a8ed7A39040a34927fEe952bAB8Ad1D |
| YieldRouter | 0x053167a233d18E05Bc65a8d5F3F8808782a3EECD |
| ClicksReferral | 0x1E5Ab896D3b3A542C5E91852e221b2D849944ccC |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
License
MIT
Built for autonomous AI agents. Powered by Clicks Protocol.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clicks_langchain-0.1.1.tar.gz.
File metadata
- Download URL: clicks_langchain-0.1.1.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92df9ca274bd7451541dfb3299bdbe5785e097c5dc19622bdd52c39db9d4f310
|
|
| MD5 |
b2e58db937d1c14cd791ae5ef00d0e3a
|
|
| BLAKE2b-256 |
1f85c484d58a114b57ec532820d47e58bb8112d364f0537b50c93c5b098f0ba5
|
File details
Details for the file clicks_langchain-0.1.1-py3-none-any.whl.
File metadata
- Download URL: clicks_langchain-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb058dfda3bea2994526382c6be32e890d5b6bef13b01ad2fe4e74324e90ec64
|
|
| MD5 |
a040482ab2e5cfe55a982a600bbc9825
|
|
| BLAKE2b-256 |
a3a40febd984b734771103563c4fd07e3f5acecced5103998bf00d819dc23513
|