PvP Mode Overview
PvP is a live leaderboard. You hand /pvp a small set of contracts —
between two and five — and Prysm posts a single message that ranks them
by percent change since the moment the session started. Every minute the
message edits in place: market caps update, ranks shuffle, the leader
moves to row 1.
It’s the format you reach for when:
- A few friends are calling tops on the same coins and you want the receipts in one place.
- You’ve made a bet on which of two tokens pumps harder over the next fifteen minutes.
- A new narrative just dropped and you want to watch four similar tokens compete in real time.
- A group is choosing between candidates to add to a shared bag.
It is not a chart, and it is not a watchlist. There is no history, no alerts, no holdings — just the live race.
Two concepts: lists and sessions
Section titled “Two concepts: lists and sessions”PvP has exactly two moving parts.
| Concept | What it is | Persists? |
|---|---|---|
| List | A saved set of tokens with a name. Belongs to you (in DM) or to a group (in groups). | Yes — saved until deleted. |
| Session | A live battle spawned from a list. Starts now, ends in fifteen minutes (extendable). | Yes — its final state stays as the message in the chat. |
A list is the recipe. It has a name, a creator, and up to five
items, where each item is a (chain, contract) pair plus a starting
market cap snapshot. You can keep up to five lists per scope (DM or
group) by default.
A session is what happens when you spawn a list. The bot posts a leaderboard message into the current chat, freezes the starting market caps, and then edits that same message every minute until the session ends. Every list can have many sessions over its lifetime — each one starts the percent-change clock fresh.
Sessions move through four states: active (ticking), stopped (the creator hit Stop), expired (the timer ran out), and errored (the bot couldn’t edit the message anymore — chat removed, message deleted, etc.). Stopped and expired sessions can be restarted from the Start button on the message itself.
How the live tick works
Section titled “How the live tick works”Once a session is active, Prysm runs a single tick every sixty seconds that updates every active session at once. Each tick:
- Pulls the latest market cap for every token in every active session.
- Recomputes percent change vs. the starting snapshot for each row.
- Re-sorts rows so the biggest gainer is on top.
- Edits the existing message in place — no new messages, no notifications, no scroll churn.
The message itself never moves. Open it once, leave the chat scrolled to it, and the numbers change underneath you. The header line shows how many minutes are left before the session ends.
A fresh session lasts fifteen minutes. The creator can hit Extend +15m to push the deadline out, up to a hard cap of thirty minutes total. After the cap, Extend disappears and the session runs to its natural end.
Example
Section titled “Example”Three Solana memes battling over the next fifteen minutes:
🪙 BONK 📈 +8.4% 🪙 WIF 📈 +2.1% 🪙 PEPE 📉 -3.7% # TOKEN CA MCAP BUYS 1. BONK ·a8Hr $1.92B 124 2. WIF ·k3Pq $1.13B 58 3. PEPE ·m2Vz $4.98M 31 🔔 Updates every 60s · stops in 14m Chart : 1 2 3
Reading top to bottom:
- The header lines show each token with its chain emoji and the percent change since the session started. They re-sort every tick — whoever’s leading is on top.
- The code block is the same race in tabular form: rank, symbol, the last four characters of the contract address, current market cap, and the number of buys in the last five minutes.
- The footer says how often the message updates and how long until
it stops. The numbers under
Chart :are tappable links into your chosen chart provider — tap1for the leader,2for second, etc.
Inactive footers replace the timer: ⏸ Paused after Stop, ✓ Session ended after the timer expires.
Where it works
Section titled “Where it works”/pvp works in your DM and in any group Prysm is in. The list scope
follows the chat:
- In DM, lists belong to you. Only you can spawn them, only you can control the resulting sessions.
- In a group, lists belong to the group. Anyone in the group can spawn them, and any group member can hit Stop or Extend on a session. This is intentional — groups call PvPs together, so control is shared.
The same user can have one set of personal lists in DM and a separate shared set in every group they’re part of.
By default, each owner — you in your DM, or a group — can have up to
five saved PvP lists at once. Hit the cap and /pvp returns
You've hit the 5-list cap until you delete one.
Each list itself is capped at five items: extra contracts pasted into
/pvp <name> ca1, ca2, ca3, ca4, ca5, ca6 are dropped with a Skipped invalid notice.
The list cap is tunable per user or per group. If you genuinely need more than five, contact the bot owner.
What’s not PvP
Section titled “What’s not PvP”A short list to keep the model clean:
- No alerts. PvP doesn’t fire notifications. If you want to be
pinged when a price hits a target, use
/alert. - No persistent leaderboard. When a session ends, the message stays but stops updating. There’s no “all-time PvP standings” anywhere.
- No holdings tracking. PvP doesn’t know what you own. For that,
use
/setholdingand/portfolio. - Not a watchlist. Saved lists are race rosters, not portfolio tracking. The starting market cap on each item is a session anchor, not a buy price.