Skip to content

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.

PvP has exactly two moving parts.

ConceptWhat it isPersists?
ListA saved set of tokens with a name. Belongs to you (in DM) or to a group (in groups).Yes — saved until deleted.
SessionA 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.

Once a session is active, Prysm runs a single tick every sixty seconds that updates every active session at once. Each tick:

  1. Pulls the latest market cap for every token in every active session.
  2. Recomputes percent change vs. the starting snapshot for each row.
  3. Re-sorts rows so the biggest gainer is on top.
  4. 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.

Three Solana memes battling over the next fifteen minutes:

🏆 meme battle
🪙 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 — tap 1 for the leader, 2 for second, etc.

Inactive footers replace the timer: ⏸ Paused after Stop, ✓ Session ended after the timer expires.

/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.

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 /setholding and /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.