Skip to main content
Copy trading on counsel lets you follow any XRPL address and replicate their open bets in a single click. It is fully non-custodial: counsel never receives your private key. Each mirror is an independent bet-intent fetched for your address, signed by your wallet, and submitted directly to the XRP Ledger. You choose your own stake, you are never forced to match the leader’s position size. Before you sign, the UI shows projected_implied_odds_after so you see exactly how your stake will move the parimutuel pool.

How it works

1

Choose a leader

Open the leaderboard and select any address ranked by SourceTag-attributed volume, or paste any valid XRPL classic address directly into the input field. Leaders are discoverable because every bet on counsel is a public, tagged Payment, there is no private order book.
2

Load their feed

Selecting a leader calls GET /api/v1/accounts/:address/feed. The response contains that account’s recent bets across all public markets. Each item includes:
FieldDescription
market_idUnique market identifier
questionThe market’s question text
outcome / outcome_labelThe outcome index and its human-readable label
amount_xrpHow much the leader staked
phaseCurrent market phase (open, trading, closed, etc.)
mirrorabletrue only when phase === "open"
hashThe leader’s original transaction hash
Bets with mirrorable: false are shown in the feed for context but cannot be copied, the market is no longer accepting bets.
3

Review mirrorable bets

The UI filters to items where mirrorable: true and, for each one, shows a live projected payout. The projection is computed client-side from the current pool state: it accounts for your entered stake amount, the existing pool balance for that outcome, and the protocol fee rate.
4

Set your stake and mirror

Enter your stake amount in XRP. The default pre-fills to the leader’s amount, but you can change it freely. Click Mirror to trigger the intent fetch:
GET /api/v1/markets/:marketId/bet-intent
  ?account=YOUR_ADDRESS
  &outcome=OUTCOME_INDEX
  &amount=YOUR_AMOUNT_XRP
The response contains an unsigned XRPL Payment transaction (intent.tx) plus projected_implied_odds_after, which reflects the pool state including your stake.
5

Sign and submit

Your connected wallet (Xaman or any supported connector) receives the unsigned transaction for signing. counsel never receives your seed or private key at any point. Once you approve, the signed transaction is submitted to the XRP Ledger. The resulting transaction hash is displayed with a link to the XRPL explorer.

Non-custodial guarantee

Every mirror follows the same flow as a manual bet: an unsigned Payment is constructed by the API, sent to your client, signed locally by your wallet, and submitted. The SourceTag in the transaction attributes the volume to counsel, but the signing key never leaves your device. If you disconnect your wallet before signing, nothing is broadcast.

Sizing your mirror

You are not bound to the leader’s stake. The amount field is editable per-bet. Because counsel markets are parimutuel, your stake directly affects the pool: a larger mirror moves the line more than a smaller one. Use the projected payout figures shown before signing to understand the trade-off.

Projected odds

Before you sign, the UI displays the indicative payout per unit and the implied probability for the outcome, computed as if your stake were already in the pool:
  • projected_implied_odds_after.implied_prob, the outcome’s share of the pool after your bet
  • projected_implied_odds_after.payout_per_unit, gross XRP returned per 1 XRP staked if the outcome wins (before fee)
These are still indicative: in a parimutuel market, final payouts are determined at close when no further bets can change the pool.

Feed endpoint reference

GET /api/v1/accounts/:address/feed
Returns { account: string, feed: FeedItem[] } sorted by timestamp descending. mirrorable is derived entirely from phase:
mirrorable: m.phase === "open"
Bets on markets in any other phase (trading, closed, resolved) are included in the feed but have mirrorable: false.
Copy trading replicates a leader’s historical bet selections. It does not guarantee the leader will continue to perform, and the odds you receive will differ from the odds at which the original bet was placed, pools change continuously as new bets arrive.