Detalle del Skill

dfm-agent

Narrow DeFi vault management with transactional operations.

CoincidenciaPosibleRevisado para finanzas
Fuentedfm-finance/dfm-agentskillsFuente externa
Instalaciones reportadas45Solo señal de popularidad

Revisar antes de usar

La revisión automática comprueba relevancia, no seguridad ni respaldo. Lee las instrucciones de la fuente antes de usar este Skill.

Vista previa guardada

SKILL.md

Este extracto es una copia guardada durante la revisión. La fuente externa contiene la versión completa y actual.

---
name: dfm-agent
version: 2.3.0
description: >-
  Drive DFM DTF (Decentralized Traded Fund) vaults on Solana through the
  @dfm-fi/agent MCP server (13 tools). READ: list/inspect vaults, zap status,
  portfolio, whoami. WRITE (gated): launch a vault, deposit (USDC→basket),
  redeem, cancel/recover a zap, update a vault's assets or management fee,
  transfer vault admin. Use this when the user asks to create or manage a DTF
  vault, deposit into or redeem from one, or check a vault/portfolio on DFM v2.
license: MIT
metadata: {"category":"defi-agent","author":"dfm","tags":"solana,defi,vault,dtf,fund-management,mcp,autonomous-agent"}
---

# DFM Agent — DTF vault management on Solana

This plugin bundles the **`@dfm-fi/agent` MCP server** (13 tools) AND this usage
skill, so a single install gives you both.

## Install (one command + one file)

1. Add the marketplace (once):
   ```
   /plugin marketplace add DFM-Finance/DFM-AgentSkills
   ```
2. Install the plugin (skill **+** MCP server auto-register together):
   ```
   /plugin install dfm-agent@dfm-agent-skills
   ```
   Restart Claude Code. Verify: `/mcp` shows the **dfm-agent** server (13 tools)
   and `/skills` lists **dfm-agent**.
3. Drop your **dedicated throwaway test-wallet** secret key (a 64-number JSON
   array, e.g. `solana-keygen` output — NOT a base58 string) at the zero-config
   default path:
   ```
   mkdir -p ~/.config/dfm && cp /path/to/test-wallet.json ~/.config/dfm/agent-wallet.json
   ```
   (Or set `DFM_AGENT_KEYPAIR_PATH` to its absolute path.) That wallet must be
   **allowlisted** for the closed alpha — send its pubkey to an admin.

**That's it.** No `HELIUS_RPC_URL`, no `DFM_API_URL`, no manual `claude mcp add` —
all defaulted: the API is the live closed-mainnet (`n2-api.dfm.finance`) and
writes broadcast through the backend (`POST /tx/submit`), so no client RPC key is
needed. ⚠️ NEVER use the protocol wallet (`9GjE…`) as the agent keypair — the
server hard-refuses it.


## Summary
DFM is a Decentralized Traded Fund (DTF) platform on Solana — ETF-like onchain
baskets. This MCP server is a **test harness** for the founder + partner to drive
the live DFM v2 API: browse vaults, check escrow/portfolio status, and (gated)
run the FULL **launch → deposit → redeem** DTF lifecycle with **local signing**
by a dedicated test wallet — no web clicking.

The agent authenticates via **SIWS signed locally** with its own test-wallet
keypair (loaded by the operator from a file/env — never through the MCP
protocol, never logged). Real-money writes are **OFF by default**.

## Available Tools

### whoami (read)
Report the test-wallet public key, API base + cluster, whether writes are
enabled, and the closed-alpha access-gate decision. **Call this first** to
confirm the agent is wired up and the wallet is allowlisted.

### list_dtfs (read)
List DTF vaults (`GET /vaults`): `address`, `vaultName`/`vaultSymbol`, type,
status, `tvl`, `sharePrice`, fees, and `underlyingAssets` allocations.
- Filters (all optional): `category`, `dtfType` (`index`|`yield`|`perps`),
  `status` (`active`|`paused`|`closed`), `sortBy`, `page`, `limit`.

### get_vault (read)
Full detail for one vault (`GET /vaults/:address`): the vault doc plus current
weights, deviations, fee structure, TVL cap.
- Input: `address` (base58 vault PDA from `list_dtfs`).

### zap_status (read, auth)
Decoded zap-v2 escrow for a `(vault, user)` (`GET /vaults/:address/zap-v2/status/:user`),
or null. Shows `mode` (0=deposit, 1=redeem), per-leg crank progress
(`legsFilled`/`legsTotal`, `legProgress`), `readyToClose`, expiry, and per-leg
failure reasons. The agent must be signed in **as `user`** (its own test wallet)
or be the vault admin.
- Input: `vault`, `user` (both base58).

### get_portfolio (read, auth)
The **signed-in test wallet's** positions + summary (`GET /portfolio`). The API
reads the wallet from the JWT — there is no portfolio-by-arbitrary-address
endpoint, so this always reports the agent's own wallet.

### la
Leer la fuente completa en GitHub (abre una página externa)
Contexto

Trabajo relacionado