projected_implied_odds_after so you see exactly how your stake will move the parimutuel pool.
How it works
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.
Load their feed
Selecting a leader calls
Bets with
GET /api/v1/accounts/:address/feed. The response contains that account’s recent bets across all public markets. Each item includes:| Field | Description |
|---|---|
market_id | Unique market identifier |
question | The market’s question text |
outcome / outcome_label | The outcome index and its human-readable label |
amount_xrp | How much the leader staked |
phase | Current market phase (open, trading, closed, etc.) |
mirrorable | true only when phase === "open" |
hash | The leader’s original transaction hash |
mirrorable: false are shown in the feed for context but cannot be copied, the market is no longer accepting bets.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.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:The response contains an unsigned XRPL
Payment transaction (intent.tx) plus projected_implied_odds_after, which reflects the pool state including your stake.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 unsignedPayment 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 betprojected_implied_odds_after.payout_per_unit, gross XRP returned per 1 XRP staked if the outcome wins (before fee)
Feed endpoint reference
{ account: string, feed: FeedItem[] } sorted by timestamp descending.
mirrorable is derived entirely from 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.