Create and operate eToro agent-portfolios โ dedicated copy-traded accounts whose trades are mirrored proportionally into the user's main eToro account. Covers the onboarding flow (API key collection, portfolio creation, secret-token handoff) and the agent-portfolio-specific execution overrides (percentages of equity in user-facing output instead of dollars; freeze live equity and cash before every workflow). Use when the user mentions agent-portfolios, asks to create or set up an agent-portfolio, list existing agent-portfolios, copy-trade through one, or have the agent operate trades on an agent-portfolio's behalf. Load alongside `etoro-trading-assistant` โ that skill carries the actual trade-execution workflows.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Create and operate eToro agent-portfolios โ dedicated copy-traded accounts whose trades are mirrored proportionally into the user's main eToro account. Covers the onboarding flow (API key collection, portfolio creation, secret-token handoff) and the agent-portfolio-specific execution overrides (percentages of equity in user-facing output instead of dollars; freeze live equity and cash before every workflow). Use when the user mentions agent-portfolios, asks to create or set up an agent-portfolio, list existing agent-portfolios, copy-trade through one, or have the agent operate trades on an agent-portfolio's behalf. Load alongside `etoro-trading-assistant` โ that skill carries the actual trade-execution workflows.
eToro Agent Portfolios
Use this skill when the user wants to create or operate an agent-portfolio. This skill assumes etoro-trading-assistant is also loaded โ agent-portfolio trade execution uses the same workflows (single trade, bulk build, rebalancing, conditional rules) as a main account, with two agent-portfolio-specific overrides applied throughout.
โ ๏ธ Don't try to handle agent-portfolio trades using only this skill. All execution flows live in etoro-trading-assistant. This skill carries only what's different about agent-portfolios โ the product concept, the onboarding flow (in references/onboarding.md), and the two execution overrides below.
What's different about agent-portfolios
Trade execution against an agent-portfolio uses identical infrastructure to a main account: same Public API endpoints, same headers, same rate limits, same 10-second PnL cache, same workflows (single trade, bulk, rebalance, conditional rules). The only execution difference is that the x-user-key header carries the agent-portfolio's userToken (from creation; see references/onboarding.md) instead of the user's main-account key.
What's specific to agent-portfolios:
The product concept (mirrored copy-trading; see below).
The onboarding flow โ references/onboarding.md (key collection โ type detection โ portfolio creation โ secret-token handoff).
Override A โ percentages of equity in user-facing output (never dollars). Applies to every user-facing message in every workflow loaded from etoro-trading-assistant.
Override B โ always read live equity and cash from /pnl before every workflow. This is a hard rule on top of the general anchor-freeze invariant in etoro-trading-assistant/references/execution-invariants.md ยง1; see "Override B" below for why it's specifically critical here.
The agent-portfolio concept
A dedicated eToro account that the agent operates on its own credentials. The agent-portfolio has its own equity, sized by eToro at creation time โ read the actual value live from /pnl; do not assume a fixed amount. That equity figure (and any per-position dollar amounts derived from it) is operational context for the agent's sizing decisions, not user-facing information.
When the user creates one, they specify an investmentAmountInUsd which is funds deducted from their main eToro account to copy-trade the agent-portfolio. Positions opened by the agent-portfolio are mirrored proportionally into the user's main account: if the agent-portfolio allocates N% of its equity to AAPL, the user's mirror allocates N% of their investmentAmountInUsd to AAPL. The agent-portfolio's absolute equity and the user's investment amount are independent inputs โ the proportion is what mirrors.
The agent trades on behalf of the agent-portfolio using the agent-portfolio's own user token. Agent-portfolios always live in the real environment โ endpoints never carry the /demo/ segment.
Override A โ user-facing numbers are percentages of equity, never dollars
Never show the user absolute dollar amounts from the agent-portfolio's equity or position sizes. Always translate to percentages of equity in user-facing output:
โ Show this
โ NOT this
"+2.1%"
"+$34.70"
"75% cash"
"$7,500 cash"
"Invest 2.5% in AAPL"
"Invest $250 in AAPL"
"Freeing about 3% of cash to make room"
"Cash freed: $2,012.97"
"Position now at 28%"
"Position at $2,755"
This rule overrides the main-account dollar default in every workflow loaded from etoro-trading-assistant. Applies to:
single-trade-walkthrough.md โ replace dollars with percentages in user-facing intent confirmations, error messages, and outcome reports.
bulk-trading.md โ use percentages in plan confirmations and post-execution reports.
rebalancing.md โ use percentages in diff confirmations, the trade-off communication for the insufficient-cash variant, and any mid-flow status messages (which per etoro-trading-assistant/SKILL.md "Talk in bottom lines, not mechanics" should mostly not exist anyway โ but if one does, it must be in percentages).
conditional-rules.md โ express rule sizes, targets, and trigger notifications in percentages.
Internal API calls still use dollar Amount fields โ convert at the call site as amount_usd = pct ร EQUITY_ANCHOR (per the execution invariants โ see Override B). The user never sees the dollar number.
The single exception is investmentAmountInUsd at portfolio creation โ that's the user's own main-account funds being committed, so it's named in dollars (see references/onboarding.md Step 2). There are no other exceptions. If you find yourself wanting to surface a dollar amount mid-workflow ("cash freed", "deployed so far", "available headroom") โ translate it to percentage of EQUITY_ANCHOR first. If a percentage doesn't make sense for what you're trying to communicate, you're probably about to violate the "Talk in bottom lines, not mechanics" rule too โ don't send the message at all.
Treat dollar-leakage on agent-portfolios as the same severity as mechanics-leakage. Both are hard rule violations. The screenshot example in etoro-trading-assistant/references/examples.md Example 5 ("Cash freed: $2,012.97") is what this looks like in practice and what you must never reproduce.
Override B โ always read live equity and cash before every workflow
The general anchor-freeze rule in etoro-trading-assistant/references/execution-invariants.md ยง1 already says to read /pnl at workflow start and freeze EQUITY_ANCHOR + CASH_ANCHOR. For agent-portfolios this is non-negotiable and specifically critical, because user intents are expressed as percentages and the only way to size them correctly is to anchor on a live equity value โ not a value remembered from earlier in the conversation, not the agentPortfolioVirtualBalance returned at creation, not anything else.
Before starting any workflow on an agent-portfolio (single trade, bulk build, rebalance, conditional rule, status report):
pnl = GET /trading/info/real/pnl // x-user-key = the agent-portfolio's userToken
EQUITY_ANCHOR = equity(pnl) // X% of intent โ X% ร EQUITY_ANCHOR
CASH_ANCHOR = available_cash(pnl)
Use these for ALL sizing decisions in the workflow โ Amount = floor(pct ร EQUITY_ANCHOR ร 100) / 100 (per execution-invariants.md ยง2 ceilings). These numbers are internal context only; never disclosed to the user (see Override A).
A new workflow gets fresh anchors. Don't reuse anchors from earlier in the conversation.
Operating an agent-portfolio (after onboarding)
Once the agent-portfolio exists and you have its userToken (per references/onboarding.md), all trading flows live in etoro-trading-assistant:
User wants to
Load
Make a single trade (open / close / partial close / limit order)
Use the agent-portfolio's userToken as x-user-key.
Apply Override A (percentages, never dollars) to user-facing output.
Apply Override B (always read live equity/cash from /pnl first) โ this is the agent-portfolio-specific application of the anchor-freeze invariant.
Apply all other invariants from execution-invariants.md (ceilings on allocations, at-most-once delivery, never-hallucinate-on-401) unchanged.
Approval-mode handling is the same as for main accounts โ default to "ask before each trade" unless the user opts into auto-execute (e.g. for recurring rebalancing).
Presenting the agent-portfolio to the user
When the user asks to see their agent-portfolio, show each position as a weight (%) of total equity and the instrument's display name. Do not show per-position dollar P&L; use percentage P&L if showing P&L at all.
The agent-portfolio's own funds, varies over time as positions move. Read live from /pnl at the start of every workflow per Override B. Hidden from the user per Override A; used only as internal context for sizing.
investmentAmountInUsd
Funds deducted from the user's main account to copy-trade this portfolio. The one place where a dollar amount appears in user-facing language โ it's the user's own main-account funds being committed at creation.
Proportional mirroring
The agent-portfolio's allocation percentage equals the user's mirror allocation percentage. If the agent-portfolio allocates 5% of its equity to AAPL, the user's mirror allocates 5% of their investmentAmountInUsd to AAPL. The agent-portfolio's absolute equity and the user's investment are independent inputs.
User token
Secret created once at portfolio creation. User must store it themselves (see references/onboarding.md Step 3).
scopeIds
202 = real:write (default and required for trading).
Reference pages in this skill
references/onboarding.md โ the conversational onboarding flow (Steps 1โ3: collect key, detect type, create portfolio + secret-token handoff), plus retrieval of existing agent-portfolios, creation-error handling, and userToken-revoked recovery.
For everything else (workflows, invariants, foundational API knowledge), see etoro-trading-assistant.
Sanity checks
Override A โ percentages, never dollars โ every user-facing number is a percentage of equity, not a dollar amount. Includes mid-flow status messages ("Cash freed: $2,012.97" โ banned), pre-trade plan estimates ("freeing about 3% of cash" โ fine), and post-trade reports ("BTC now at 28%" โ fine; "BTC at $2,755" โ banned).
No mid-flow status pings โ between confirmation and the verified bottom-line result, the agent says nothing. No "Now executingโฆ", no "Phase 1 done, starting Phase 2", no "All 5 closes landed". Per etoro-trading-assistant/SKILL.md "Talk in bottom lines, not mechanics" and references/examples.md Example 5.
Override B โ live /pnl read before every workflow โ EQUITY_ANCHOR + CASH_ANCHOR frozen from a fresh /pnl (not from the conversation, not from agentPortfolioVirtualBalance, not from a previous workflow).
All other invariants from execution-invariants.md apply unchanged (ceilings on opens, open buffer if planned cash < 1% of equity, mirror-image rule for closes when freeing cash, at-most-once on every POST, stop on 401).
The hardcoded x-api-key (per api-conventions.md) is used; the user is never asked for it.
userToken is presented to the user exactly once at portfolio creation, with explicit storage instructions (references/onboarding.md Step 3).
After creation, all execution flows are loaded from etoro-trading-assistant โ not handled inline here.
No specific dollar amount (e.g. "$10,000") is mentioned to the user as the agent-portfolio's balance or starting capital โ the value comes from /pnl and is operational only.