swarm-vault-manager-trading

Swarm Vault Manager Trading Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "swarm-vault-manager-trading" with this command: npx skills add lit-protocol/swarm-vault/lit-protocol-swarm-vault-swarm-vault-manager-trading

Swarm Vault Manager Trading Skill

This skill enables you to execute swaps and transactions on behalf of Swarm Vault swarm members. You are acting as a manager's AI trading assistant.

Overview

Swarm Vault is a platform where managers create "swarms" - groups of users who deposit funds into smart wallets. As a manager, you can execute transactions across all swarm member wallets simultaneously.

Key Concepts

  • Swarm: A group managed by you containing multiple users

  • Agent Wallet: Each user's smart wallet within a swarm (ZeroDev Kernel wallet)

  • Holdings: Aggregate token balances across all swarm members

  • Swap: Exchange one token for another across all member wallets

  • Transaction: Execute arbitrary smart contract calls across all member wallets

Authentication

Before using this skill, ensure the environment is configured:

export SWARM_VAULT_API_KEY="svk_your_api_key_here" export SWARM_VAULT_API_URL="https://api.swarmvault.xyz" # Optional, defaults to production

Get your API key from the Swarm Vault settings page at https://swarmvault.xyz/settings

Available Commands

  1. Check Holdings

View aggregate token holdings across all swarm members.

pnpm check-holdings [swarmId] [--members]

Arguments:

  • swarmId : Optional - if not provided, lists all swarms you manage

  • --members : Optional - show per-member balances with membership IDs

Output: JSON with ETH balance, token balances, member count, and common tokens. When using --members , also includes per-member balance breakdown.

Example - view all member balances:

pnpm check-holdings abc-123 --members

This will output each member's:

  • Membership ID (use with --members flag on swap commands for targeted swaps)

  • Agent wallet address

  • User wallet address

  • ETH balance

  • Token balances

  1. Preview Swap

Preview a swap without executing it. Always preview before executing!

pnpm preview-swap <swarmId> <sellToken> <buyToken> [sellPercentage] [slippagePercentage] [--members id1,id2,...]

Arguments:

  • swarmId : The swarm ID (UUID)

  • sellToken : Token address to sell (or symbol like "USDC", "WETH", "ETH")

  • buyToken : Token address to buy (or symbol)

  • sellPercentage : Percentage of balance to sell (1-100, default: 100)

  • slippagePercentage : Slippage tolerance (default: 1)

  • --members : Optional comma-separated list of membership IDs to include (defaults to all active members)

Output: Per-member breakdown showing sell amounts, expected buy amounts, and any errors.

  1. Execute Swap

Execute a swap across swarm member wallets.

pnpm execute-swap <swarmId> <sellToken> <buyToken> [sellPercentage] [slippagePercentage] [--members id1,id2,...]

Arguments:

  • Same as preview-swap, including optional --members flag to target specific members

Output: Transaction ID that can be monitored with check-transaction .

Example - swap for specific members only:

pnpm execute-swap abc-123 USDC WETH 50 1 --members member-id-1,member-id-2

  1. Execute Transaction

Execute a raw transaction template with placeholder support.

pnpm execute-transaction <swarmId> <templateJsonFile>

The template JSON file should contain an ABI-mode or raw-mode transaction template.

  1. Check Transaction

Monitor a transaction's status.

pnpm check-transaction <transactionId> [--wait]

Flags:

  • --wait : Poll until transaction completes (default: just check current status)

Token Addresses

Base Mainnet (Chain ID: 8453)

Symbol Address

ETH (Native) 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE

WETH 0x4200000000000000000000000000000000000006

USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

DAI 0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb

USDbC 0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA

cbETH 0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22

Base Sepolia Testnet (Chain ID: 84532)

Symbol Address

ETH (Native) 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE

WETH 0x4200000000000000000000000000000000000006

USDC 0x036CbD53842c5426634e7929541eC2318f3dCF7e

Template Placeholders

When constructing raw transactions, use these placeholders that get resolved per-member:

Placeholder Description Example Output

{{walletAddress}}

Agent wallet address 0x1234...abcd

{{ethBalance}}

Current ETH balance in wei 1000000000000000000

{{tokenBalance:0xAddress}}

ERC20 token balance (raw units) 500000000

{{percentage:ethBalance:50}}

50% of ETH balance 500000000000000000

{{percentage:tokenBalance:0xAddr:100}}

100% of token balance 500000000

{{blockTimestamp}}

Current block timestamp 1704567890

{{deadline:300}}

Timestamp + N seconds (for swap deadlines) 1704568190

{{slippage:amount:5}}

Amount minus 5% (for minAmountOut) 950000000

Placeholder Examples

Transfer 50% of USDC balance:

{ "mode": "abi", "contractAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "abi": [{ "name": "transfer", "type": "function", "inputs": [ { "name": "to", "type": "address" }, { "name": "amount", "type": "uint256" } ], "outputs": [{ "type": "bool" }] }], "functionName": "transfer", "args": ["0xRecipientAddress", "{{percentage:tokenBalance:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913:50}}"], "value": "0" }

Approve max tokens for a DEX:

{ "mode": "abi", "contractAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "abi": [{ "name": "approve", "type": "function", "inputs": [ { "name": "spender", "type": "address" }, { "name": "amount", "type": "uint256" } ], "outputs": [{ "type": "bool" }] }], "functionName": "approve", "args": ["0xSpenderAddress", "115792089237316195423570985008687907853269984665640564039457584007913129639935"], "value": "0" }

Wrap ETH to WETH (50% of ETH balance):

{ "mode": "abi", "contractAddress": "0x4200000000000000000000000000000000000006", "abi": [{ "name": "deposit", "type": "function", "inputs": [], "outputs": [] }], "functionName": "deposit", "args": [], "value": "{{percentage:ethBalance:50}}" }

Transaction Template Structure

ABI Mode (Recommended)

Use ABI mode for type-safe contract interactions:

{ "mode": "abi", "contractAddress": "0x...", "abi": [{ "name": "functionName", "type": "function", "inputs": [...], "outputs": [...] }], "functionName": "functionName", "args": ["arg1", "{{placeholder}}", ...], "value": "0" }

Raw Calldata Mode (Advanced)

Use raw mode when you have pre-encoded calldata:

{ "mode": "raw", "contractAddress": "0x...", "data": "0xa9059cbb000000000000000000000000...", "value": "0" }

Common Operations

Swap USDC to WETH

Preview first

pnpm preview-swap <swarmId> USDC WETH 50 1

If preview looks good, execute

pnpm execute-swap <swarmId> USDC WETH 50 1

Monitor the transaction

pnpm check-transaction <transactionId> --wait

Swap ETH to USDC

pnpm preview-swap <swarmId> ETH USDC 25 1 pnpm execute-swap <swarmId> ETH USDC 25 1

Check What Tokens a Swarm Holds

pnpm check-holdings <swarmId>

Error Handling

Common errors and solutions:

Error Code Meaning Solution

AUTH_001

Unauthorized Check API key is set correctly

RES_003

Swarm not found Verify swarm ID is correct

PERM_002

Not a manager You can only trade for swarms you manage

TX_003

Insufficient balance Members don't have enough tokens

EXT_002

0x API error Try again or check token addresses

Best Practices

  • Always preview before executing - Use preview-swap to see expected outcomes

  • Start with small percentages - Test with 10-25% before going to 100%

  • Monitor transactions - Use check-transaction --wait to ensure completion

  • Check holdings first - Know what tokens are available before swapping

  • Use appropriate slippage - 1% is usually fine, increase to 2-3% for volatile tokens

Platform Fee

Swarm Vault charges a 0.5% fee on swaps, deducted from the buy token amount. This fee is displayed in swap previews.

SDK Reference

This skill uses the @swarmvault/sdk package. For programmatic access beyond these scripts, you can use the SDK directly:

import { SwarmVaultClient, BASE_MAINNET_TOKENS } from '@swarmvault/sdk';

const client = new SwarmVaultClient({ apiKey: process.env.SWARM_VAULT_API_KEY, });

// List your swarms const swarms = await client.listSwarms();

// Get holdings const holdings = await client.getSwarmHoldings(swarmId);

// Preview swap const preview = await client.previewSwap(swarmId, { sellToken: BASE_MAINNET_TOKENS.USDC, buyToken: BASE_MAINNET_TOKENS.WETH, sellPercentage: 50, });

// Execute swap const result = await client.executeSwap(swarmId, { sellToken: BASE_MAINNET_TOKENS.USDC, buyToken: BASE_MAINNET_TOKENS.WETH, sellPercentage: 50, });

// Wait for completion const tx = await client.waitForTransaction(result.transactionId);

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Workspace Trash

Soft-delete protection for workspace files. Intercept file deletions and move them to a recoverable trash instead of permanent removal. Use when deleting, re...

Registry SourceRecently Updated
General

Deploy Public

Private-to-public repo sync. Copies everything except ai/ to the public mirror. Creates PR, merges, syncs releases.

Registry SourceRecently Updated
General

Lumi Diary

Your local-first memory guardian and cyber bestie. Lumi collects life fragments — a sigh, a snapshot, a roast — and stitches them into radiant, interactive m...

Registry SourceRecently Updated
General

Diffview

File comparison and diff viewer tool. Compare two files side-by-side, show colored inline diffs, compare directories, find duplicate files, and generate patc...

Registry SourceRecently Updated