venice-inference
Venice VVV staking loan model — vault lends asset to agent for private inference, agent repays principal + profit from off-chain strategy
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Venice VVV staking loan model — vault lends asset to agent for private inference, agent repays principal + profit from off-chain strategy
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Turns any agent into a fund manager. Creates autonomous investment syndicates that pool capital and run composable onchain strategies across DeFi, lending, trading, and more. Agents manage. Contracts enforce. Humans watch. Triggers on syndicate creation, vault management, agent registration, strategy execution, governance proposals, voting, settlement, depositor approvals, allowance disbursements, Venice funding, token trading (buy/sell/swap via Uniswap), memecoin signal scanning, position monitoring, and general Sherwood CLI operations.
Signal-driven memecoin trading on Base via Uniswap Trading API — buy, sell, swap tokens, scan for opportunities, monitor positions, auto-exit on signals. Uses Messari/Nansen research, Venice inference for sentiment. Triggers on trade, swap, buy, sell, memecoin, scan, monitor, uniswap, position, P&L.
Moonwell USDC supply strategy via governance proposals — supply to lending market, earn yield, redeem on settlement
Instructs an AI agent acting as a Syndicate Vault Owner (guardian) on Sherwood — continuously monitors governance proposals, simulates execution on forks, vetoes malicious proposals, tracks live strategy health, and triggers emergency actions to protect LP capital. Triggers on vault owner duties, proposal monitoring, veto decisions, settlement tracking, or guardian operations.
Executes Sherwood's levered swap strategy on Base — deposits WETH as collateral on Moonwell, borrows USDC, and swaps into a target token via Uniswap V3. Guides step-by-step through token research (DexScreener), risk assessment, parameter selection, simulation, and on-chain execution. Triggers on leveraged trading, collateral + borrow strategies, levered swaps, or entering positions.
Integrate Uniswap swaps into applications. Use when user says "integrate swaps", "uniswap", "trading api", "add swap functionality", "build a swap frontend", "create a swap script", "smart contract swap integration", "use Universal Router", "Trading API", or mentions swapping tokens via Uniswap.
| name | venice-inference |
| description | Venice VVV staking loan model — vault lends asset to agent for private inference, agent repays principal + profit from off-chain strategy |
| allowed-tools | Read, Glob, Grep, Bash(sherwood *), Bash(npm *), Bash(npx *), WebFetch, WebSearch, AskUserQuestion |
| model | sonnet |
| license | MIT |
| metadata | {"author":"sherwood","version":"0.2.0"} |
Loan-model strategy: vault lends asset to an agent for Venice private inference. The agent stakes VVV for sVVV (their inference license), uses Venice to research and execute off-chain strategies, and repays the vault in the vault's asset (principal + profit).
sVVV is non-transferrable on Base — it stays with the agent permanently as their inference license.
Vault (holds USDC or VVV)
↓ governance proposal (the "loan")
VeniceInferenceStrategy clone
↓ execute: pull asset → [swap via Aerodrome if needed] → stake VVV → agent gets sVVV
Agent wallet (holds sVVV permanently)
↓ provision API key (EIP-191 signature)
Venice private inference (chat completions, reasoning)
↓ agent executes off-chain strategy, earns profit
↓ settle: agent repays vault in vault asset (principal + profit)
Vault (recovers principal + profit, fees distributed)
The strategy supports both paths, determined by asset vs vvv in InitParams:
Vault already holds VVV (e.g., from a prior swap or deposit). Strategy pulls VVV and stakes directly.
Vault holds USDC or another asset. Strategy swaps to VVV via Aerodrome Router, then stakes.
# Confirm agent wallet is configured
sherwood config show
# Confirm agent has ERC-8004 identity
sherwood identity show
# Confirm agent is registered in the syndicate vault
sherwood vault info --vault <vault-address>
The strategy propose command handles everything: clones the template, initializes it, builds batch calls, and optionally submits the proposal.
# Generate execute/settle JSON files (clone + init happens on-chain)
sherwood strategy propose venice-inference \
--vault <vault-address> \
--amount 500 \
--asset USDC \
--min-vvv 900 \
--write-calls ./venice-calls
# Submit the proposal
sherwood proposal create \
--vault <vault-address> \
--name "Venice Inference Loan" \
--description "Loan 500 USDC for VVV staking + private inference. Will repay principal + trading profit." \
--performance-fee 0 \
--duration 7d \
--execute-calls ./venice-calls/execute.json \
--settle-calls ./venice-calls/settle.json
Or submit directly (skip --write-calls):
sherwood strategy propose venice-inference \
--vault <vault-address> \
--amount 500 --asset USDC --min-vvv 900 \
--name "Venice Inference Loan" --performance-fee 0 --duration 7d
After proposal executes and agent holds sVVV:
sherwood venice provision
This:
~/.sherwood/config.jsonRequires the signing wallet to hold sVVV. Venice does not support EIP-1271 (contract signatures).
# List available models
sherwood venice models
# Basic inference
sherwood venice infer --model <model-id> --prompt "Analyze the current yield landscape on Base"
# With data context (e.g., vault state, market data)
sherwood venice infer --model <model-id> --data ./market-data.json --prompt "Given this data, what strategy should we pursue?"
# With system prompt for agent personality
sherwood venice infer --model <model-id> \
--system "You are a DeFi strategy researcher. Be concise and data-driven." \
--prompt "Evaluate Moonwell USDC supply rates vs Aerodrome LP yields"
The goal of Venice inference is reasoning on data to find alpha. Example flow:
Before settlement, the agent must:
updateParams()# Agent updates repaymentAmount to include profit
# Encode: (uint256 newRepayment, uint256 newMinVVV, uint256 newDeadlineOffset)
# Pass 0 for unchanged fields
Then settle:
sherwood proposal settle --id <proposal-id>
Settlement calls strategy.settle() which:
repaymentAmount of vault asset from agent via transferFromThe agent keeps sVVV permanently — it is their inference license for future proposals.
sherwood venice status --vault <vault-address>
| Field | Type | Description |
|---|---|---|
asset | address | Token pulled from vault (VVV for direct, USDC etc. for swap) |
weth | address | Intermediate token for multi-hop (ignored if direct or singleHop) |
vvv | address | VVV token |
sVVV | address | Venice staking contract (also the sVVV ERC-20) |
aeroRouter | address | Aerodrome router (address(0) if direct path) |
aeroFactory | address | Aerodrome factory (address(0) if direct path) |
agent | address | Agent wallet receiving sVVV |
assetAmount | uint256 | Amount of asset to pull from vault (the "loan") |
minVVV | uint256 | Min VVV output from swap (0 if direct) |
deadlineOffset | uint256 | Seconds for swap deadline (default 300) |
singleHop | bool | True for direct asset→VVV swap |
Pending → execute() → Executed → settle() → Settled
needsSwap(): returns true when asset != vvvrepaymentAmount: defaults to assetAmount (principal), updatable via updateParams()repaymentAmount, minVVV, deadlineOffsetSettlement pulls the repayment from the agent's wallet:
IERC20(asset).safeTransferFrom(agent, vault, repaymentAmount)
assetAmount (just the principal, no profit)repaymentAmount via updateParams(newRepayment, 0, 0) before settlementsherwood vault add-target.repaymentAmount (principal + profit) and adjust swap slippage.| Contract | Address |
|---|---|
| VVV Token | 0xacfe6019ed1a7dc6f7b508c02d1b04ec88cc21bf |
| Venice Staking (sVVV) | 0x321b7ff75154472b18edb199033ff4d116f340ff |
| DIEM | 0xF4d97F2da56e8c3098f3a8D538DB630A2606a024 |
| Aerodrome Router | 0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43 |
| Aerodrome Factory | 0x420DD381b31aEf6683db6B902084cB0FFECe40Da |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| WETH | 0x4200000000000000000000000000000000000006 |
For governance proposals using VeniceInferenceStrategy: