Unofficial, not affiliated with Papertrade. High leverage can lose your whole margin. Alerts are best effort.
Papertrade Alerts docs
App GitHub

Concepts

Subscription and token#

A subscription is an account with no email or password. Creating one returns a management token that starts with ptal_. Only its SHA-256 hash is stored, so a lost token cannot be recovered. Send it as Authorization: Bearer ptal_....

Watches and roles#

A watch is one wallet address plus rules. The role decides what it reports:

Alert types#

TypeFires whenDefault
liquidation_distanceMark price is closer than belowPct percent to a position's bust priceon, 0.05%
position_opened / follow_openedA new position appearson
position_closedA position closes, with net PnL and PAPER mintedon
position_liquidatedA position is liquidatedon
balance_changeEquity moved by more than changeUsdoff
session_key_expiringA session key expires within withinDayson, 3 days
staking_rewardsPending staking rewards reach aboveUsdcoff
mint_rate, market_statusProtocol level: PAPER mint rate threshold, market paused or close-onlymarket status on

Edge-triggered, not level-triggered#

A threshold alert fires when a value crosses its threshold and re-arms only after it recovers (liquidation distance re-arms at 1.5 times the threshold). A wallet that sits below a threshold for an hour produces one alert, not sixty. Trade events carry a per-position dedupe key, so a retried poll can never send twice.

Silent seeding#

A new watch records its first snapshot without alerting. Positions that already exist are not announced.

Closed or liquidated?#

A vanished position waits for its settlement row from the Papertrade indexer to learn whether it closed or was liquidated, and to include PnL. After 10 minutes without a row it is reported as closed without PnL.

Delivery#

Each alert is queued per active channel and retried with backoff. A delivery that exhausts its attempts lands in the dead-letter list (GET /api/deliveries/dead) and can be re-queued after you fix the channel. An account is capped at 60 alerts per hour; extra alerts are stored as suppressed and never sent.

Papertrade API etiquette#

A 429 from Papertrade pauses polling for the advertised time and is never counted as a wallet error. At most MAX_WALLETS_PER_TICK wallets are polled per minute.

Raw markdown: /docs/concepts.md. Apache-2.0. Unofficial, not affiliated with Papertrade.