Polyhub Account Skill
Version: v0.3.3
When to use
Use this skill when the user asks about:
- Portfolio overview or stats
Requirements
POLYHUB_API_BASE_URL— Polyhub API server URL (e.g.https://api.polyhub.example.com)POLYHUB_API_KEY— API key (must start withphub_)curlmust be available in the runtime environment.jqis strongly recommended for building JSON payloads safely.
Safety rules
- Never print
POLYHUB_API_KEYin the output. - Prefer building JSON with
jq -ninstead of interpolating raw shell strings.
Tools
Use the bash tool to call the API with curl.
Fast Path
For common intents, map user requests like this:
- “看资产统计” ->
GET /api/v1/portfolio/stats
Curl base setup
BASE="${POLYHUB_API_BASE_URL%/}"
AUTH=(-H "Authorization: Bearer $POLYHUB_API_KEY" -H "Content-Type: application/json")
Portfolio
Action: Get portfolio stats
GET /api/v1/portfolio/stats
Returns aggregated portfolio statistics for the authenticated user.
Current field semantics:
positionsValue: official Polymarket positions valueavailableBalance: official USDC balance minusunsettledFeestotalPnL: official Polymarket total PnLunsettledFees: unsettled Polyhub fees in USDCinvestedCapital: Polyhub-calculated invested capital for copy-task history
Current UI alignment in poly_copy:
- Portfolio page top stats use this endpoint
- Avatar dropdown
USDC BalanceusesavailableBalance - Avatar dropdown
Account ValueusesavailableBalance + positionsValue
curl -sS --fail-with-body "${AUTH[@]}" "$BASE/api/v1/portfolio/stats"
Error handling
401: API key missing/invalid/expired/disabled. Ask user to check or regenerate key.400: Invalid request payload. Check required fields.404: Delegated access not registered for the givenorganizationId.405: Wrong HTTP method.5xx: Server error. Retry once with backoff; if still failing, report response body.