{
  "schemaVersion": "1.0",
  "item": {
    "slug": "portfolio-report",
    "name": "Uniswap Portfolio Report",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/wpank/portfolio-report",
    "canonicalUrl": "https://clawhub.ai/wpank/portfolio-report",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/portfolio-report",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=portfolio-report",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/portfolio-report"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/portfolio-report",
    "agentPageUrl": "https://openagent3.xyz/skills/portfolio-report/agent",
    "manifestUrl": "https://openagent3.xyz/skills/portfolio-report/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/portfolio-report/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Overview",
        "body": "Generates a comprehensive portfolio report for a wallet's Uniswap positions across all supported chains. Delegates to the portfolio-analyst agent to discover positions, calculate PnL, track fee earnings, and analyze composition."
      },
      {
        "title": "When to Use",
        "body": "Activate when the user asks:\n\n\"Show me my positions\"\n\"Portfolio report\"\n\"What's my Uniswap PnL?\"\n\"How much have I earned in fees?\"\n\"Which positions are out of range?\"\n\"What's my portfolio worth?\"\n\"Summarize my LP positions\""
      },
      {
        "title": "Parameters",
        "body": "ParameterRequiredDefaultDescriptionwalletNoConfigured agent walletWallet address to analyzechainsNoAll chainsSpecific chains or \"all\"focusNofull\"positions\", \"pnl\", \"fees\", or \"full\""
      },
      {
        "title": "Workflow",
        "body": "Extract parameters from the user's request: identify wallet address, chain filter, and focus area.\n\n\nDelegate to portfolio-analyst: Invoke Task(subagent_type:portfolio-analyst) with the parameters. The agent discovers all positions across chains, values them, calculates PnL, and analyzes composition.\n\n\nPresent results: Format the portfolio report as a user-friendly summary."
      },
      {
        "title": "Output Format",
        "body": "Portfolio Report: 0xf39F...2266\n\n  Total Value: $125,000\n    LP Positions: $95,000\n    Idle Tokens:  $28,000\n    Uncollected:  $2,000\n\n  PnL Summary:\n    Realized:    +$5,200\n    Unrealized:  +$3,800\n    Gas Costs:   -$450\n    Net PnL:     +$8,550 (+7.3%)\n\n  Positions (2):\n    1. USDC/WETH 0.05% (V3, Ethereum) — IN RANGE\n       Value: $50,000 | PnL: +$2,000 | Fees: $800 uncollected\n    2. UNI/WETH 0.30% (V3, Ethereum) — OUT OF RANGE\n       Value: $45,000 | PnL: +$2,000 | Fees: $1,200 uncollected\n\n  Recommendations:\n    - Collect $1,200 in fees from UNI/WETH position\n    - Rebalance UNI/WETH position (currently out of range)"
      },
      {
        "title": "Important Notes",
        "body": "Delegates entirely to portfolio-analyst — no direct MCP tool calls.\nPnL includes gas costs. A position may be profitable before gas but unprofitable after.\nIL is reported as both absolute dollar value and percentage.\nData may be slightly delayed due to RPC/subgraph sync."
      },
      {
        "title": "Error Handling",
        "body": "ErrorUser-Facing MessageSuggested ActionWallet not configured\"No wallet configured.\"Set WALLET_TYPE + PRIVATE_KEYNo positions found\"No Uniswap positions found for this wallet.\"Wallet may not have LP'dChain unreachable\"Could not connect to X chain.\"Try again later"
      }
    ],
    "body": "Portfolio Report\nOverview\n\nGenerates a comprehensive portfolio report for a wallet's Uniswap positions across all supported chains. Delegates to the portfolio-analyst agent to discover positions, calculate PnL, track fee earnings, and analyze composition.\n\nWhen to Use\n\nActivate when the user asks:\n\n\"Show me my positions\"\n\"Portfolio report\"\n\"What's my Uniswap PnL?\"\n\"How much have I earned in fees?\"\n\"Which positions are out of range?\"\n\"What's my portfolio worth?\"\n\"Summarize my LP positions\"\nParameters\nParameter\tRequired\tDefault\tDescription\nwallet\tNo\tConfigured agent wallet\tWallet address to analyze\nchains\tNo\tAll chains\tSpecific chains or \"all\"\nfocus\tNo\tfull\t\"positions\", \"pnl\", \"fees\", or \"full\"\nWorkflow\n\nExtract parameters from the user's request: identify wallet address, chain filter, and focus area.\n\nDelegate to portfolio-analyst: Invoke Task(subagent_type:portfolio-analyst) with the parameters. The agent discovers all positions across chains, values them, calculates PnL, and analyzes composition.\n\nPresent results: Format the portfolio report as a user-friendly summary.\n\nOutput Format\nPortfolio Report: 0xf39F...2266\n\n  Total Value: $125,000\n    LP Positions: $95,000\n    Idle Tokens:  $28,000\n    Uncollected:  $2,000\n\n  PnL Summary:\n    Realized:    +$5,200\n    Unrealized:  +$3,800\n    Gas Costs:   -$450\n    Net PnL:     +$8,550 (+7.3%)\n\n  Positions (2):\n    1. USDC/WETH 0.05% (V3, Ethereum) — IN RANGE\n       Value: $50,000 | PnL: +$2,000 | Fees: $800 uncollected\n    2. UNI/WETH 0.30% (V3, Ethereum) — OUT OF RANGE\n       Value: $45,000 | PnL: +$2,000 | Fees: $1,200 uncollected\n\n  Recommendations:\n    - Collect $1,200 in fees from UNI/WETH position\n    - Rebalance UNI/WETH position (currently out of range)\n\nImportant Notes\nDelegates entirely to portfolio-analyst — no direct MCP tool calls.\nPnL includes gas costs. A position may be profitable before gas but unprofitable after.\nIL is reported as both absolute dollar value and percentage.\nData may be slightly delayed due to RPC/subgraph sync.\nError Handling\nError\tUser-Facing Message\tSuggested Action\nWallet not configured\t\"No wallet configured.\"\tSet WALLET_TYPE + PRIVATE_KEY\nNo positions found\t\"No Uniswap positions found for this wallet.\"\tWallet may not have LP'd\nChain unreachable\t\"Could not connect to X chain.\"\tTry again later"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wpank/portfolio-report",
    "publisherUrl": "https://clawhub.ai/wpank/portfolio-report",
    "owner": "wpank",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/portfolio-report",
    "downloadUrl": "https://openagent3.xyz/downloads/portfolio-report",
    "agentUrl": "https://openagent3.xyz/skills/portfolio-report/agent",
    "manifestUrl": "https://openagent3.xyz/skills/portfolio-report/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/portfolio-report/agent.md"
  }
}