# Mint calendar URL: https://tesserapp.org/docs/calendar Upcoming drops on the site, plus daily mint cards in your Discord. The mint calendar is public. Weeks start Monday. Tap a day for UTC time, price, supply, chain, and mint links. A drop card can also show the project’s X bio, OpenSea minted / supply, and Mint / OpenSea / Checker / Site / X / Discord when they posted those links. If they only posted a clock (no “we mint at”), that time shows as unconfirmed — not a locked mint. Signed-in wins from Tessera raffles show on matching drops (Your WL). Turn on Mint reminders in profile: one Discord DM about an hour before each mint, with the wallet. If time or phases change, that ping updates. Several raffles on the same drop list each raffle + wallet. Auto-created winner / WL roles on those raffles are removed 72 hours after mint, so a drop that moves a day or two still has the role through mint. Winner Hub. ### open-the-calendar tesserapp.org/calendar. No sign-in required to browse. ### read-a-day Live / upcoming / ended. Open a drop for time and mint links. ### submit-a-drop-optional Submit a drop — name, date, chain, supply, price, X. Sign in with Discord. Staff review before it shows. ### daily-cards-in-discord Tessera posts mint cards every day. Anyone with Manage Channels can receive the same cards in their own channel. The 1-hour reminder is a Discord DM only — Mint reminders in profile, for mints you won. ### invite-tessera The bot must be in the server — Discord bot setup. ### pick-a-channel In that server, run /set calendar. You need Manage Channels or Administrator. Pick the channel, or run it in the channel you want. ### pick-a-channel The bot needs Send Messages and Embed Links there. After you set it, Tessera offers Post today's drops now if they aren't already in that channel. ### stop /set calendar-off — Tessera stops posting in that server. Run /set calendar again anytime. ### stop To post new tweets from an X account into a channel, use /x-monitor. X tweet monitor. ### stop Don't point /set calendar at Tessera's own #daily-mints — that's already the source post. ### if-it-fails You see ### if-it-fails Do ### if-it-fails /set calendar needs Manage Channels ### if-it-fails You need Manage Channels or Administrator in that server ### if-it-fails Command missing ### if-it-fails Invite Tessera, then type /set — it can take a few minutes to show on a new server ### if-it-fails Can't post ### if-it-fails Give the bot View Channel + Send Messages + Embed Links ### if-it-fails Cards never arrive ### if-it-fails Bot in the server; those perms on the channel; tap Post today's drops now, or wait for the next daily post ### if-it-fails Wrong channel ### if-it-fails /set calendar again and pick the right one --- # Collabs and whitelist URL: https://tesserapp.org/docs/collabs Spreadsheet for collab deals, plus a personal WL sheet with mint extras. Two sheets. Same Crystal Void table, different jobs. Sheet Who What Collabs Signed-in hosts Deals you are running — project, spots, contact, due date, giveaway Whitelist Anyone signed in Lists you won on Tessera, plus rows you add by hand Header → avatar → Workspace. Dashboard has both links too. ### add-a-row New row. Project name, X, community, spots, team spots, contact, due date. ### create-the-raffle-from-the-row Create opens create raffle with that row linked. ### status-moves-with-the-raffle Draft until a raffle is linked. Posted when the raffle exists (public URL in Giveaway). Submitted when winners are announced (Winners points at Hub). Set Cancelled yourself if the deal dies. ### status-moves-with-the-raffle A live raffle you host shows up here on its own. You do not have to add the row first. The sheet is yours — teammates’ raffles stay on their sheets. Ended raffles stay off the sheet unless you already linked them. ### status-moves-with-the-raffle Contact share puts that handle in the directory so other CMs can search it. Default is private — only your rows. ### status-moves-with-the-raffle When a linked raffle is announced, Tessera can DM you that the row flipped to Submitted. ### whitelist-sheet Tessera wins appear as locked rows: project, X, type, chain, wallet, community, giveaway, won date. ### whitelist-sheet Add Manual row for lists that did not come from Tessera. ### whitelist-sheet On any row you can fill mint date, time, and price. Tessera wins stay on the sheet — delete is only for manual rows. ### whitelist-sheet CSV download is on both pages. ### not-the-collab-discord-role #collab-request / /collab is a different product. The first person to submit a project’s X is noted. If Tessera hosts that collab, they get +100 tickets when they enter that raffle. Other communities’ raffles do not. These sheets are your working tracker. ### not-the-collab-discord-role Link a collab row when you publish. ### not-the-collab-discord-role Announce — the collab row becomes Submitted. ### not-the-collab-discord-role Community column is the team you host with. --- # Discord bot setup URL: https://tesserapp.org/docs/connecting-discord Invite Tessera, set channel permissions, post raffle embeds. Discord does three jobs in Tessera: sign-in, role / server gates, and posting raffle embeds + winner announcements. ### before-you-start You need Manage Server (or Administrator) in the Discord server to invite the bot. If you don’t, send the invite to a server admin. ### authorize-tessera Fastest: open Invite Tessera bot while logged into Discord, pick the server, Authorize. ### authorize-tessera Includes Pin Messages (needed for /raid setup to pin the guide). ### or-invite-from-tessera Sign in → Team setup → Add Bot to Server. You can also use Add bot on Create / Edit → Discord if the server is missing. ### confirm In Discord: Server Settings → Members — Tessera is listed. Drag the Tessera role above roles you will gate on. In Tessera: Create → Discord or team setup — the server appears after refresh. If it does not, Tessera is not in a server you manage. You need Manage Server to invite; Ban Members is what team create verifies. ### channel-permissions In the channel you post raffles / winners, Tessera (or your bots role) needs: ### channel-permissions View Channel ### channel-permissions Send Messages ### channel-permissions Embed Links ### channel-permissions Attach Files (recommended) ### channel-permissions Without those, Post to Discord fails with Missing Access. ### discord-tab On create / edit: ### discord-tab Server — where the bot lives for this raffle ### discord-tab Channel — raffle embed ### discord-tab Role / ping — optional @role / @here / @everyone ### discord-tab Winners channel — optional separate results channel ### discord-tab From the raffle page, Post to Discord. Entrants use Join / View Giveaway on the embed. ### slash-commands Every command, who can run it, and what it does: Discord commands. ### slash-commands Tools live in their own pages: Mint calendar (/set calendar), X tweet monitor (/x-monitor), X name check (/twitter name-check). ### role-gates Bot in the same server as the role. ### role-gates Entrant has the role, then reconnects Discord on Tessera. ### role-gates Requirement points at that server + role. ### role-gates The channel almost always blocks send. Allow Tessera Send Messages + Embed Links, then post again. --- # Create a template URL: https://tesserapp.org/docs/create-template Save a full raffle preset on a team — same four tabs as Create. A template is a saved raffle on a team. Same steps as Create: Details, Requirements, Discord, Advanced. Pick it on Create and the form fills in. It does not publish by itself. Use one for weekly drops, partner collabs, or anything you repeat. ### before-you-start You need a team. Templates do not live on a personal account. ### whats-saved Tab ### whats-saved On the template ### whats-saved Details ### whats-saved Name, title preset, description, duration (12h / 1d / 2d / 7d), winners or GTD / FCFS, wallet chain (EVM, SOL, BTC, ZEC, NEAR, SUI, XMR) ### whats-saved Requirements ### whats-saved Discord, X, wallet, email — same builder as Create, including Don’t verify X ### whats-saved Discord ### whats-saved Server, post channel, ping roles, winners channel ### whats-saved Advanced ### whats-saved Auto-draw, exclude team, winner role (auto-created roles cannot be @mentioned; they drop 72 hours after mint), Discord optional (people can enter without Discord; gated roles still required — put extras in Extra tickets), CM note, entry question, winner info, private entries (hides the count and latest entries on the public page) ### whats-saved Not saved — those stay per raffle: Project X, banner / PFP, Google Doc import, exact clock time (duration applies as hours from now). ### open-the-team Dashboard → the team → Templates. ### new-template New template (or Create first template). Same four tabs as raffle create. Save. Team members can reuse it. ### apply-on-create Create → pick the team → click the team template. Change title, Project X, and prize for this drop, then publish. ### apply-on-create You can still edit every field after apply. --- # Create a raffle URL: https://tesserapp.org/docs/creating-a-raffle Title, end time, winners, requirements, Discord — then publish a public URL. Open tesserapp.org/create (or Create in the header). The live preview on the right updates as you type. Click Create raffle when the form is ready. ### before-you-start Signed in with Discord — Quickstart ### before-you-start Optional: team if several people will host ### before-you-start For a Discord post or a role gate: Tessera bot in that server — Discord bot setup ### tabs Tab ### tabs You set ### tabs Details ### tabs Type (Individual / Team), title, description, winner count, end date, chain for wallet gates ### tabs Requirements ### tabs Who can enter. Add Join Discord only if entrants must be in a server. ### tabs Discord ### tabs Server, channel, optional ping. Ping more than one role (Team and Collaborator). Invite link is optional. Role gates still need the bot in that server. ### tabs Advanced ### tabs Auto-draw, exclude team, winner role (auto-created roles cannot be @mentioned; they drop 72 hours after mint), Discord optional (people can enter without Discord; gated roles still required — put extras in Extra tickets), CM note, entry question, winner info, private entries (hides the count and latest entries on the public page) ### type-title-description Individual or Team. Title should name the prize (e.g. Discord Nitro · 1 year). Description is optional rules or context. ### winners-and-end-date How many win. Optional Split into GTD / FCFS. All entries win makes every entrant a winner (wallet collection). The numbered count stays the default. End date: pick a date or a preset (12h, 1d, 2d, 7d). On phone, use − / + next to winners, then tap outside. ### winners-and-end-date Create auto-saves in this browser for 7 days. History restores an older checkpoint. A broken end date in a saved draft no longer crashes the page. ### wallet-chain ETH / EVM, Solana, Bitcoin, Zcash, NEAR, Sui, or Monero — only needed if you add a wallet gate. For Zcash, pick shielded (u1), unshielded (t1 / t3), or either. NEAR accepts named accounts (alice.near), 64-hex implicit IDs, and 0x ETH-implicit. Sui is 0x plus 64 hex characters. Monero is a mainnet address that starts with 4 or 8. ### wallet-chain Team raffle: pick one or more teams — Tessera creates one raffle per team. Apply a team template to pre-fill that raffle (same four tabs as Create). Title, Project X, and banner stay per raffle. End date comes from the template duration if you set one. ### requirements Requirements are the checks an entrant must pass before Enter raffle works. Set them on Create or Edit → Requirements. ### requirements Required checks are AND — every required one must pass. Discord roles are Gate (required to enter) or Extra tickets (bonuses only). Gate roles need any one, or all, depending on what you pick. Extra tickets never open the raffle. ### requirements For X Super Follow, entrants keep who they subscribe to public. ### discord Account required, or a server + role. Pick the server, then roles. The bot must be in that server. A Discord invite on the raffle is optional. ### discord Setting ### discord Meaning ### discord Gated roles ### discord Required to enter. Need any one, or all, if you pick more than one. Empty = joining the server is enough. ### discord Extra tickets ### discord Never required. Set tickets on each (1, 2, 5…). 0 extra is still 1 ticket. Roles list low → high. Best role wins or Stack. Passing the gate is 1 ticket, then extras add. Example: 1 + supporter 1 + booster 2 = 4. ### discord Gate only (no extras) ### discord Those ticket numbers are their ticket count. ### discord No roles ### discord Join the server only. ### discord Server tag ### discord Wear a Discord server tag (the 4-character badge on their name, like TESS). One tag at a time. Search the server in the dropdown, or Any server (tag only). Optional = extra tickets if they have it; required = they must be wearing that tag to enter. ### discord Gated roles stay required even if Make Discord tasks optional is on. Put booster / extra roles in Extra tickets so they never open a private raffle. ### x--twitter Task ### x--twitter Target ### x--twitter Follow ### x--twitter @handle ### x--twitter Like / repost / like+repost / reply ### x--twitter Full tweet URL (x.com/.../status/...) ### x--twitter Super Follow (paid subscribe) ### x--twitter Creator @handle — hard gate ### x--twitter Blue / min followers / min tweets / min age ### x--twitter Profile gates — who can enter. Linked X is not enough. Blue is X Premium / Verified (verified_type), not a leftover checkmark. Reconnect X if the snapshot is stale. ### x--twitter Follow, like, repost, and reply are checked on Verify all / enter. Elite skips follow / like / repost / reply. Super Follow, required Discord (server, gated role, or tag), and Blue / followers / tweets / age are never skipped. Make Discord tasks optional lets people enter without joining Discord or linking an account. Gated roles still required — on the site, in Discord, and for Elite farm. Put booster / extra roles in Extra tickets. Leave the toggle off if join itself should be required. ### x--twitter Don't verify X requirements still shows who to follow and which tweet to like / repost / reply. Those social checks are skipped. Profile gates still block enter. ### x--twitter Every raffle includes two optional Tessera bonuses. Follow @tesserafi for +1 extra ticket in every raffle for the next 3 days. Be in the Tessera Discord for another +1 for the next 3 days. Missing either still enters. Hosts do not turn these on. They stack. ### wallet-and-email Linked EVM, Solana, Bitcoin, Zcash, NEAR, Sui, or Monero wallet. Zcash raffles collect the kind the CM picked (shielded u1, unshielded t1/t3, or either). NEAR raffles accept a named account (alice.near), a 64-hex implicit ID, or 0x ETH-implicit. Sui raffles accept 0x plus 64 hex. Monero raffles accept a mainnet address that starts with 4 or 8. Optional verified email. ### wallet-and-email Tessera must see the Super Follow on their public subscriptions list. Hidden lists look like “not subscribed.” Entrants uncheck Hide your subscriptions at Profile customization. Discord embeds include this note. ### wallet-and-email Use roles you already have. Don’t stack every gate. Test with a second Discord. Save a set as a template. ### after-you-create You get a public URL. Copy it, or Post to Discord if the bot and channel are set. ### after-you-create The path comes from the title. Reusing a title after a delete still makes a new raffle with a new entry list. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Can’t change winners on phone ### if-it-fails − / +, or type and tap outside ### if-it-fails Something went wrong after History ### if-it-fails Refresh, then Restore again — or Start new. Old checkpoints with a bad end date stay in History and load without crashing. ### if-it-fails Server missing on Discord tab ### if-it-fails Invite the bot to that server, then refresh — Discord bot setup. Multi-team create posts one Discord per team; each server needs the bot. ### if-it-fails Discord role never passes ### if-it-fails Bot in server, user has the role, user Reconnect Discord ### if-it-fails X follow / RT fails ### if-it-fails Reconnect X, wait a minute, Verify all ### if-it-fails Super Follow miss ### if-it-fails Unhide subscriptions, wait, Recheck. Blue check ≠ Super Follow --- # API & Integrations URL: https://tesserapp.org/docs/develop Live webhooks when a raffle opens or a project is added, plus the read feed and partner write API. Three surfaces, one header (X-API-Key). Partner write keys you mint yourself: one user key on your profile (or Dashboard → Keys) — the secret starts with your Tessera username — or a team key (Team → Settings). Event and read-feed keys are still issued by Tessera. For Base Live events Bots and up-pointers. Tessera POSTs when a raffle goes live or a project is added. /events/v1 Read feed Poll raffles, community stats, runners, requirements, winners (CollabOS is on this). /provider Partner write Create raffles and pull winners after draw, as a team member. /partner/v1 ### authentication Send your key on every request in the X-API-Key header (Authorization: Bearer works too). Event keys, read-feed keys, and partner keys are separate — ask for the one you need. ### authentication The key you mint for POST /partner/v1/raffles also auths the read feed: ### authentication GET https://api.tesserapp.org/provider/raffles/{id or slug} GET https://api.tesserapp.org/provider/raffles/{id or slug}/winners ### authentication Partner winners (team-scoped, 409 until drawn): ### authentication GET https://api.tesserapp.org/partner/v1/raffles/{id or slug}/winners ### authentication GET /provider/ping and GET /events/v1/ping are unauthenticated — connectivity only. ### communities Public team-page stats. Same read key as the raffle feed. A daily pass is enough. The cap is 60 requests a minute. ### communities Look up one community by its project X: ### communities GET /provider/communities?x=joinsyndicate_ ### communities x can be a handle, @handle, or an x.com / twitter.com profile URL. One team per handle. No match is 404. A value that is not a handle is 400. ### communities Walk every community when you do not have the handle yet. Oldest first. cursor is the nextCursor from the previous page. limit defaults to 50 and stops at 100. ### communities GET /provider/communities?limit=50 ### communities Field ### communities Meaning ### communities xHandle ### communities Project X linked on the team. Null when they have not linked one. ### communities members ### communities Team members plus the owner. A count. Member handles are not on the public team page. ### communities raffles ### communities Every raffle on the team. ### communities live ### communities Raffles still open. ### communities stats.totalEntries ### communities Entries on raffles whose entry list is public. Same counter as the public lists, so a live raffle can be about an hour ahead of this number. ### communities stats.totalWinners ### communities Winner rows on those raffles. ### communities stats.avgEntriesPerRaffle ### communities Rounded. Private entry lists are left out, same as the team page. ### communities stats.winRate ### communities Winners divided by entries, as a rounded percent. ### communities statsHidden ### communities The team hid the four stats. stats is null. Members, raffles, and live stay. ### communities url ### communities https://tesserapp.org/teams/{slug} ### communities The body includes "source": "tessera". ### live-events HTTPS webhooks. You register a URL; Tessera POSTs JSON the moment a raffle opens or a project first appears. No websocket. If you cannot expose a URL, poll GET /events/v1/feed. ### live-events Event ### live-events When ### live-events data ### live-events raffle.live ### live-events A raffle is created — it is live at that moment. ### live-events Raffle id, public URL, title, times, winner count, project X, team, requirements. ### live-events project.added ### live-events First raffle for that collab project's X handle. The public page /project/{handle} now exists. ### live-events Handle, project URL, X URL, first raffle. ### live-events A raffle for a new project fires both events. Treat them as independent POSTs — delivery order is not guaranteed. ### register-a-webhook Response includes id, url, events, and secret once. Store the secret. Later GET /events/v1/webhooks does not return it. Max 5 webhooks per key. HTTPS only. ### register-a-webhook DELETE /events/v1/webhooks/{id} removes it. POST /events/v1/webhooks/{id}/test sends a webhook.ping so you can check the path before a real raffle. ### receive-the-post Tessera POSTs to your URL with a JSON body and these headers: ### receive-the-post Header ### receive-the-post Meaning ### receive-the-post X-Tessera-Event ### receive-the-post raffle.live or project.added (or webhook.ping on test) ### receive-the-post X-Tessera-Id ### receive-the-post Event id (evt_…) — idempotent key ### receive-the-post X-Tessera-Timestamp ### receive-the-post Unix seconds ### receive-the-post X-Tessera-Signature ### receive-the-post sha256= + HMAC-SHA256 of the raw body with your webhook secret ### receive-the-post Reply 2xx within 8 seconds. Timeouts and non-2xx retry twice. After 20 consecutive failures the webhook is disabled (active: false). We do not follow redirects. ### verify-the-signature Use the raw bytes, not a re-serialized object. ### poll-instead GET /events/v1/feed?since={ISO}&type=raffle.live&limit=50 — same envelopes, oldest first, last ~200 events. Use since as the previous createdAt. Still needs X-API-Key. ### poll-instead Team Settings → webhook URL posts raffle embeds into a Discord channel. /events/v1 is for your own bot: you give Tessera an HTTPS endpoint, we POST the JSON above. Discord webhook URLs are the wrong target unless you wrap them yourself. ### read-feed Poll when you need the full raffle list or winners. For “it just went live”, use Live events above. ### list-raffles GET /provider/raffles — every raffle on Tessera, newest first, paginated. ### list-raffles Parameter ### list-raffles Default ### list-raffles Description ### list-raffles status ### list-raffles all ### list-raffles all, active, or ended ### list-raffles limit ### list-raffles 100 ### list-raffles Page size, max 200 ### list-raffles offset ### list-raffles 0 ### list-raffles Pagination offset ### list-raffles updated_since ### list-raffles — ### list-raffles ISO timestamp — only raffles created or announced after this ### runner-identity Every raffle carries the actual person who runs it, keyed the way integrations need it: ### runner-identity Field ### runner-identity Purpose ### runner-identity runner.userId ### runner-identity Stable Tessera user ID ### runner-identity runner.displayName ### runner-identity Human-readable name ### runner-identity runner.discordId ### runner-identity Best key for automatic matching to your workspace members ### runner-identity runner.discordUsername ### runner-identity Display and fallback identity ### runner-identity runner.xUserId / runner.xUsername ### runner-identity X identity where connected ### runner-identity createdBy, managedBy and drawnBy mirror runner — Tessera has a single raffle role (the creator). drawnBy is null until winners are drawn. ### requirements The requirements array is pass-through from Tessera's own model — map what you need: ### requirements Type ### requirements Meaning ### requirements discord_linked ### requirements Entrant must link a Discord account ### requirements discord_server ### requirements Role / server requirement — carries guildId, guildName, roleIds[], roleNames[] ### requirements twitter_follow ### requirements X follow — value is the handle (@user or user) ### requirements twitter_tweet ### requirements Alias of twitter_both (like & repost). value is the tweet URL or numeric id. Optional tweetId — filled from value if omitted ### requirements twitter_both ### requirements Like & repost the tweet. Same fields as twitter_tweet ### requirements twitter_like ### requirements Like the tweet. Same value / tweetId fields ### requirements twitter_retweet ### requirements Repost the tweet. Same value / tweetId fields ### requirements twitter_reply ### requirements Reply to the tweet. Same value / tweetId fields ### requirements … ### requirements Wallet checks and others pass through the same shape ### winners GET /provider/raffles/{raffleId} (or the URL slug) returns the raffle plus: ### winners Winner lists are included only when the hosting team publishes winners. A companion flag (enabled by Tessera) can widen that to all drawn raffles. Winner private codes and private winner notes are never part of the payload. ### errors Status ### errors Meaning ### errors 401 ### errors Missing or invalid X-API-Key ### errors 403 ### errors Key cannot use that team (wrong team key, or user key not on that roster) ### errors 404 ### errors Team / raffle does not exist, or the path is unknown ### errors 400 ### errors Bad parameter (e.g. malformed updated_since) ### errors Rate guidance: paginate with limit ≤ 200 and walk offset; prefer updated_since for incremental polling. ### partner-write-api For bots that create raffles and pull winners after draw (not the CollabOS read feed). Auth is X-API-Key. ### partner-write-api Two kinds of keys — mint them in the app, secret shown once: ### partner-write-api Kind ### partner-write-api Where ### partner-write-api Scope ### partner-write-api User ### partner-write-api Dashboard → Keys · profile · POST /user/api-keys ### partner-write-api Every team you can manage. One key. Secret starts with your Tessera username. ### partner-write-api Team ### partner-write-api Team → Edit → Settings · POST /teams/{teamId}/api-keys ### partner-write-api That community only ### partner-write-api A user key on Sanctuary does not fail with a silent 404 on another community you belong to — it works there too. A team key for Sanctuary returns 403 if you send a different teamId. A team that does not exist is 404. A missing route is 404 Not Found. ### partner-write-api Mint / list / revoke (session cookie, same as the site): ### create POST /partner/v1/raffles — same fields as the site create form. ### create Field ### create Default ### create Notes ### create title ### create required ### create endsAt ### create required ### create ISO timestamp ### create teamId ### create required for user keys ### create Must be a team this key can use (GET /teams). Team keys default to their locked team. ### create winnerCount ### create 1 ### create requirements ### create [] ### create Same objects as the UI (type, label, value, tweetId, guildId, …). twitter_tweet is stored as twitter_both ### create requiredWalletType ### create "EVM" ### create EVM / SOL / BTC / ZEC / NEAR / SUI / XMR / null ### create autoDrawWinners ### create false ### create Ended is not the same as drawn ### create postDiscord ### create false ### create If true, needs a Discord channel (discord.channelId or templateId with a post channel). Create is live — no extra status/activate call. ### create templateId ### create — ### create Team template UUID. Copies that template’s Discord channel + requirements when you omit them. Each Follow row includes targetUserId when the account exists. ### create discord ### create — ### create { guildId, channelId, roleId, winnerChannelId } ### create raffleImageUrl / raffleBannerUrl ### create — ### create Raffle logo + banner. Aliases: avatarUrl, bannerUrl. ### create Follow handles do not have to be looked up on X before create. GET /partner/v1/templates returns targetUserId on each twitter_follow row when Tessera can see the profile. GET /partner/v1/x/lookup?handle= returns { found, handle, userId } with status 200. found: false means that profile page is gone. An X API body of User not found is not a reason to skip the community — post the raffle with the handle, or with targetUserId when it is set. Create still saves the follow if that id is missing. ### status GET /partner/v1/raffles/{id} is safe to poll anytime. It returns status (active / ended), endsAt, drawn (bool), announcedAt, entryCount. No winner list. No entries. ### winners-1 GET …/winners and …/winners.csv return the drawn Winner table only. ### winners-1 While the raffle is live: 409 { "detail": { "ready": false, "reason": "not_ended" } } ### winners-1 Ended, but winners are still pending (pre-draw) or there are none: 409 not_drawn ### winners-1 A short draw still returns. If the raffle ended and every saved winner is confirmed, you get that list even when fewer people won than winnerCount ### winners-1 Never returns in-progress entrants as winners ### winners-1 The public read feed (GET /provider/raffles/{id}/winners) stays empty until winners are announced or the host marks them public. Partner winners do not wait for that announce ### winners-1 wallet is the payout address for the raffle’s current requiredWalletType. If the chain changes after people enter (EVM → SOL), wallet is the SOL address, not the 0x saved at entry. The address they entered is kept only when it still matches that chain. ### winners-1 Each winner also includes the profile wallets: walletAddress (EVM), solWalletAddress, btcWalletAddress, zecWalletAddress, nearWalletAddress, suiWalletAddress, xmrWalletAddress. The read feed (GET /provider/raffles/{id}/winners) uses the same fields. Sui addresses are 0x plus 64 hex. Monero addresses are mainnet, start with 4 or 8, and keep their original case. ### winners-1 The JSON body includes requiredWalletType. ### winners-1 CSV columns: rank, username, discordId, xHandle, wallet, tierName, status, then the profile wallet columns (walletAddress, solWalletAddress, btcWalletAddress, zecWalletAddress, nearWalletAddress, suiWalletAddress, xmrWalletAddress). wallet is the payout column. --- # Discord commands URL: https://tesserapp.org/docs/discord-commands Every Tessera slash command — who can run it and what it does. Type / in a server where Tessera is invited. One of each command. The role also needs Use Application Commands. Invite and channel perms: Discord bot setup. ### tools Mint cards, X watches, and handle history. Full how-tos on each page. ### tools Command ### tools Who ### tools What ### tools /set calendar ### tools Manage Channels ### tools Post Tessera’s daily mint cards in a channel you pick. Optional channel — default is this channel. Mint calendar. ### tools /set calendar-off ### tools Manage Channels ### tools Stop daily mint cards on that server. Run /set calendar again anytime. ### tools /x-monitor ### tools Manage Channels ### tools Private panel: add X handles, pick the channel, stop one or all. Posts new originals only. X tweet monitor. ### tools /twitter name-check ### tools Anyone ### tools Past handles and display names for an X account. Result is private. Takes up to a minute. X name check. ### tools /set calendar is not /calendar. Type /set, then pick calendar. ### tools The bot needs View Channel + Send Messages + Embed Links in the channel it posts into. ### engage Raid kit. /raid setup builds the category and five channels. Guides: Engage. ### engage Command ### engage Who ### engage What ### engage /raid setup ### engage Administrator ### engage Create 🔶 TESSERA RAID and the five rooms. Safe to re-run — reuses existing channels. Setup. ### engage /raid create ### engage Admins ### engage Open the X raid builder (tweet, actions, points). Duration up to 7 days. Ping is type-to-search. Post in 🔶|live-raids. Live raids. ### engage /raid raffle ### engage Admins ### engage Open the raid-points raffle builder. Members buy tickets with points. Raid raffles. ### engage /raid auction ### engage Admins ### engage Auction spots for raid points. Highest bids win when it ends; points are held while it runs. ### engage /raid marketplace ### engage Admins ### engage Add or edit shop items (roles for points). Marketplace. ### engage /raid points ### engage Admins ### engage Give or remove raid points for a member. Optional reason lands in raid-ops. ### engage /raid reset ### engage Server owner ### engage Set every raid balance on this server to 0. confirm: True. Claims stay — those tweets cannot be farmed again. ### engage /raid leaderboard ### engage Anyone ### engage Top raiders by points on this server. Reply is private. ### engage /raid profile ### engage Anyone ### engage Your raid points, tickets, linked X / wallets, and claims in this server. Every server you earned in is on your profile. ### engage Members earn points from raids, then spend them on raffle tickets or shop roles. No raid, no points. ### collab-and-status Command ### collab-and-status Who ### collab-and-status What ### collab-and-status /status ### collab-and-status Anyone ### collab-and-status Platform status — same as tesserapp.org/status. Works in DMs. ### collab-and-status /collab ### collab-and-status #collab-request ### collab-and-status Submit a collab request with an X link. First submit is noted. If Tessera hosts that collab, that person gets +100 tickets when they enter Tessera’s raffle. Other communities’ raffles do not. One project per 4 hours. Tessera Discord only. ### collab-and-status /bounty ### collab-and-status Staff ### collab-and-status Optional close note. Tickets apply on enter. First submitter, or a user override. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Command missing ### if-it-fails Invite Tessera, then type / — it can take a few minutes on a new server ### if-it-fails Can’t run /set … ### if-it-fails You need Manage Channels or Administrator. The role also needs Use Application Commands ### if-it-fails Can’t run /raid setup ### if-it-fails Administrator. Set up Engage ### if-it-fails Bot doesn’t post ### if-it-fails Give Tessera View Channel + Send Messages + Embed Links in that channel ### if-it-fails /collab rejected ### if-it-fails Run it in #collab-request on Tessera Discord, with an x.com link --- # FAQ URL: https://tesserapp.org/docs/faq Short answers — account, create, Discord, entry, winners. Jump to a section. For a full how-to, use the linked guide. ### account Question ### account Answer ### account How do I sign in? ### account Discord, X, or Continue with wallet on tesserapp.org. Wallet sign-in is the same EVM address linked on profile — connect it, then sign a message. Quickstart. ### account Wallet and X? ### account Onboarding or profile. Linking a wallet on Profile is not the same as signing in — after logout, use Continue with wallet and sign. ### account Rotate wallets? ### account Extra wallets + Auto-rotate on entry on the EVM card. Wallets. ### account Default wallet per community? ### account Premium → each server row. One wallet per chain. Site, Discord, and farm use it. A pick on the raffle page still wins. Wallets. ### account GTD vs FCFS wallet? ### account Raffles with both GTD and FCFS seats let you pick two wallets at enter. FCFS takes the next free address after GTD, not the main wallet, while another address is still unused on that project. You can pick the same wallet for both seats. On Discord, that choice is the step after you pick the wallet. Wallets. ### account Multiple X accounts? ### account Profile → Add / Relink X. Show on profile is the main account on your profile. In use is the default on raffles. On a raffle you can pick another linked X for that raffle (Blue / follow / like / repost / reply checks use the one you pick). Switching in use after you enter does not change that raffle. ### account “You won” DM? ### account Real staff never DM first. Real wins never ask for money, a seed, or a wallet to “unlock.” Only tesserapp.org. ### account Login / Internal Server Error ### account Hard refresh, another browser, wait. Report with time (UTC) + Discord username. ### account Profile shows someone else’s X / wallets ### account Same display name as another user. Sign in, open Profile from the header — it loads yours. ### creating Question ### creating Answer ### creating Can’t change winners on phone ### creating − / +, or type and tap outside. ### creating Where did my raffle go? ### creating Dashboard → Raffles, same Discord. Homepage is a short live list. ### creating Same title = same link? ### creating Path comes from the title. Delete + recreate can reuse the path — it is still a new raffle. ### creating Private entry list ### creating Hides the count and latest entries on the raffle page. You still see the full list in Winner Hub. ### creating Discord roles vs extra tickets ### creating Pick roles, then Gate (required to enter) or Extra tickets (bonuses only). Extra tickets never open the raffle. Gate + extras: 1 ticket to enter, then extras add. Create a raffle. ### api Question ### api Answer ### api Ping my bot when a raffle goes live? ### api HTTPS webhook on API & Integrations. Tessera POSTs raffle.live and project.added. Ask the team for an events key. ### teams Question ### teams Answer ### teams Can’t create a team ### teams Need Ban Members (or admin) in the server. Create a team. ### teams Teammate can’t see it ### teams They are in Members, signed in with the right Discord. ### teams Skip raffle tasks for staff ### teams Owner → team Settings → Bypass role. Teams. ### teams Where is the collab spreadsheet? ### teams Collabs. Wins plus mint extras: Whitelist. Guide. ### discord Question ### discord Answer ### discord Invite the bot ### discord Discord bot setup — use that invite (includes Pin Messages). ### discord Bot doesn’t post ### discord Send Messages + Embed Links for Tessera in that channel. ### discord Role never passes ### discord Bot in server, user has the role, user reconnects Discord, requirement points at the right role. ### discord Collab request in Tessera Discord ### discord #collab-request → /collab with the project’s X link. First submit is noted. If Tessera hosts that collab, they get +100 tickets when they enter that raffle. Other communities’ raffles do not. ### discord Daily mint cards in my server ### discord Manage Channels: /set calendar. Mint calendar. ### discord Can’t see /set calendar ### discord Type /set, then calendar — it is not /calendar. The role also needs Use Application Commands (Server Settings → Roles). Running it still needs Manage Channels. ### discord Full slash command list ### discord Discord commands — every / command, who can run it, what it does. ### discord Change a raid already posted ### discord Settings on the raid post (admins). Does not ping twice. After it ends, that button becomes Statistics. Live raids. ### discord Where are my raid points? ### discord /raid profile in that Discord server, or every server at once on your profile. Points stay on the server you earned them. ### entering Question ### entering Answer ### entering Tasks done, can’t enter ### entering Verify all. Follow / like / repost / reply checks are live — try again if they stayed red. Reconnect X/Discord if they still fail. Raffle still live. ### entering I have an X sub, Tessera says not ### entering Super Follow to that creator, not X Premium. Unhide the list: Profile customization → uncheck Hide your subscriptions → Recheck. How users enter. ### entering Ended raffle looks empty ### entering Ended + no entry is a short status. Hard refresh if you see an old layout. ### entering Zcash wallet ### entering Profile → Zcash. Link u1 (shielded, Zashi / YWallet) and/or t1/t3 (unshielded). Each raffle collects the kind the CM picked. ### entering NEAR wallet ### entering Profile → NEAR. Paste a named account (alice.near), a 64-hex implicit ID, or 0x ETH-implicit. Public keys (ed25519:…) are not account IDs. ### entering Sui wallet ### entering Profile → Sui. Paste 0x plus 64 hex characters. A 40-hex 0x address is EVM, not Sui. ### entering Monero wallet ### entering Profile → Monero. Paste a mainnet address that starts with 4 or 8 (95 characters, or 106 for an integrated address). The checksum has to match. ### premium Question ### premium Answer ### premium How many plans? ### premium One — Elite. 1 month Elite $20, 3 months Elite $49, 6 months Elite $89. Premium. ### premium What do I get? ### premium +5 extra tickets on every raffle (on top of Discord roles), raffle worker, raid worker, Elite Discord role, time stacks. Super Follow / Discord roles / X-profile gates stay — Elite only skips X follow / like / RT / reply. Paying does not start the worker — press Start worker on Premium. Elite +5 always applies. Host control over extras comes back with Team Plans (TBA). ### premium How do I pay? ### premium tesserapp.org/premium → USDT on BSC (BEP-20). Not Ethereum, not Solana. Fresh address per order; unlocks after confirmations. ### premium I paid Starter / Pro / Ultra ### premium Those still count as Elite until they expire. New purchases are Elite only. ### premium Do credits run out? ### premium No monthly cap. Start worker on Premium. ### premium Raid worker starts after I stop it ### premium Stop is sticky. Pick communities you are in, then Start. Sync does not turn it back on. Premium. ### premium Elite used my ETH on a Zcash raffle ### premium Farm now submits the raffle’s chain — Zcash u1 (primary or extras), not EVM. ### winners Question ### winners Answer ### winners How do I announce? ### winners Winner Hub → Announce to Discord. Discord post first, then the site list goes public, then winner DMs. Winner Hub. ### winners Change a winner after announce ### winners Pick on that row, or Remove then Pick. Re-announce if Discord should match. Already-sent DMs are not unsent. ### winners Won, but the wallet is the wrong chain ### winners Open the raffle page → paste the mint wallet (Zcash raffles need u1 if that’s what the project asked). Seat stays. CM can also Set wallet in Winner Hub. ### winners Where are my wins? ### winners tesserapp.org/wins — search by raffle, slug, or team. Signed-in, a project page lists your winning wallets. Matching drops also show on the calendar. ### winners How do I get notified? ### winners Profile → Notifications. Wins, mint reminders (one Discord DM ~1 hour before each mint you won), and draw notices are separate Discord DMs. Linked email is for Winner Hub export. ### winners No message link ### winners Discord Status. Live = the post is there. Not on Discord → Re-post embed or Re-announce. ### still-stuck Send: Discord username, raffle link, screenshot, approximate time (UTC). --- # Quickstart URL: https://tesserapp.org/docs/getting-started Sign in with Discord, link a wallet and X, run a 1-winner test raffle. Get a working Tessera account and a tiny live raffle in under ten minutes. ### before-you-start A Discord account (this is your Tessera login) ### before-you-start Optional: an EVM or Solana wallet, and an X account — skip them now, link later from your profile ### sign-in Open tesserapp.org → Sign in. Discord is the usual path. Continue with wallet works too — connect the same EVM address that’s on Profile, then sign a message. Linking a wallet while already signed in is not the same as signing in with it. ### finish-onboarding Go to tesserapp.org/onboarding: ### finish-onboarding Discord — already linked from sign-in. ### finish-onboarding Wallet — sign a message (no gas). EVM or Solana. ### finish-onboarding X — connect your handle (read-only by default). ### finish-onboarding Skip for now is fine. You can still browse and enter open raffles. ### host-a-1-winner-test Open Create. Title, 1 winner, a short end time, no requirements. Click Create raffle. Copy the public URL. ### host-a-1-winner-test Your raffles live under Dashboard, tied to the Discord you signed in with. ### host-a-1-winner-test To host under a Discord server as a shared team, you need Ban Members (or Administrator) in that server. See Create a team. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Login / Internal Server Error ### if-it-fails Hard refresh, another browser, wait a few minutes ### if-it-fails Onboarding skip loop ### if-it-fails Open Profile and link wallet / X there ### if-it-fails No raffle on the homepage ### if-it-fails Dashboard → Raffles — homepage is only a short live list ### if-it-fails Keep the first real raffle simple. Add Discord / X gates after you have drawn a test once. --- # How Tessera works URL: https://tesserapp.org/docs/how-tessera-works Raffles, requirements, teams, templates, and the Discord bot — the model. The pieces you will see on every host flow. Read this once, then jump to a guide. ### objects Name ### objects What it is ### objects Raffle ### objects A timed giveaway with a public URL. Opens on create; closes at end date. ### objects Requirements ### objects Automatic checks an entrant must pass (Discord role, X follow, wallet…). Required checks are AND. ### objects Team ### objects A shared host tied to a Discord server. Members create and manage raffles together. ### objects Template ### objects Full raffle preset on a team (Details, Requirements, Discord, Advanced). Pre-fills create — does not auto-publish. ### objects Discord bot ### objects Posts raffle embeds, winner announcements, and optional daily mint cards (/set calendar); needed for role/server gates. Slash list: Discord commands. ### objects Winner Hub ### objects Where you draw, Pick / Remove a seat, announce, and export. Nothing posts to Discord until Announce. ### objects Calendar ### objects Public mint calendar. Partner servers can receive the daily cards with /set calendar. Calendar. ### objects Tools ### objects Discord slash commands: mint cards, X tweet monitor, name check. Discord commands. ### objects Engage ### objects Optional Discord kit: X raids → points → raffle tickets or roles. ### objects Elite ### objects The only paid plan for entrants: auto-enter worker + +5 tickets. Premium. ### two-kinds-of-user Host — creates the raffle, sets gates, posts, draws. ### two-kinds-of-user Entrant — opens the link, signs in with Discord, Verify all, Enter raffle. ### two-kinds-of-user You never fill an entrant’s requirements for them. ### where-things-live Task ### where-things-live Place ### where-things-live Sign in / onboarding ### where-things-live tesserapp.org, Onboarding ### where-things-live Create ### where-things-live tesserapp.org/create ### where-things-live Your raffles ### where-things-live Dashboard ### where-things-live Public browse ### where-things-live Raffles ### where-things-live Mint calendar ### where-things-live Calendar ### where-things-live Team page ### where-things-live tesserapp.org/teams/ --- # How users enter URL: https://tesserapp.org/docs/how-users-enter Sign in, verify requirements, enter — what participants actually do. Entrants open your raffle link (or View Giveaway / Join on a Discord embed), sign in with Discord, pass the gates, and click Enter raffle. You do not complete those checks for them. Elite skips follow / like / repost / reply after required Discord join/roles pass. Super Follow, required Discord, and X profile gates (Blue, min followers, min tweets, min age) are never skipped. When the host turns Make Discord tasks optional on, you can enter without joining Discord or linking an account. Gated roles still required. Extra-ticket roles add tickets if you have them. Joining a new server is picked up on enter — you should not need to reconnect Discord. Every raffle has two optional Tessera bonuses. Follow @tesserafi for +1 extra ticket in every raffle for the next 3 days. Be in the Tessera Discord for another +1 for the next 3 days. You can still enter without either. They stack. ### open-the-raffle Public URL, or Join / View Giveaway on the Discord embed. ### link-what-the-raffle-requires EVM, Solana, Bitcoin, Zcash, NEAR, Sui, or Monero wallet, and/or X, in the entry panel (or from profile). Zcash raffles only accept the address kind the raffle asks for (u1 shielded, t1/t3 unshielded, or either). NEAR raffles accept a named account (alice.near), a 64-hex implicit ID, or 0x ETH-implicit. Sui raffles accept 0x plus 64 hex. Monero raffles accept a mainnet address that starts with 4 or 8. If you win and the wallet on the entry is the wrong chain, paste the right one on the raffle page — the seat stays. ### verify-all Tessera re-checks every required task. Follow, like, repost, and reply on raffles are checking again — if Verify all stayed red, try once more. When they all pass, Enter raffle enables. ### verify-all On a phone, Like / Repost / Reply opens that tweet in the X app when it is installed — not the mobile website. ### verify-all If you have the team’s bypass role, you can enter without completing the listed tasks. Teams. ### finding-raffles On tesserapp.org/raffles (or Dashboard → Raffles you can enter): ### finding-raffles Search and chips — keyword, chain, tags ### finding-raffles Any entry / Joined / Not joined ### finding-raffles My communities — raffles from Discord servers they are in. If it asks to refresh Discord, Reconnect Discord once. ### extra-accounts Need ### extra-accounts Where ### extra-accounts More than one X ### extra-accounts Profile → Add / Relink X. Show on profile is the main account people see. In use is the default on raffles. On the raffle page, pick which linked X to use for that raffle — same idea as wallets. Blue / follow / like / repost / reply run against the one you pick. ### extra-accounts More than one wallet ### extra-accounts Profile → add extras. Optional Auto-rotate — see Wallets & auto-rotate. ### extra-accounts GTD and FCFS wallets ### extra-accounts Raffles with both GTD and FCFS seats let you pick two wallets at enter. FCFS is the next address after GTD that is still unused on that project, until you change it. The same wallet for both seats is allowed. On Discord, that is the step after you pick the wallet. The main wallet is the FCFS seat only when the others are already spent. Wallets. ### extra-accounts Ended raffles show Ended. Entry is closed. ### after-you-win Search every Tessera WL you won at tesserapp.org/wins. A project page (/project/{handle}) lists live, ended, and (signed-in) your winning wallets. Matching drops also show on the mint calendar (Your WL). Calendar. ### after-you-win When the host announces winners, you get a Discord DM if Wins is on in profile. Mint reminders is a separate toggle — one Discord DM about an hour before each mint you won, with the wallet. Linked email is for Winner Hub export. ### tickets Source ### tickets How it counts ### tickets Discord roles ### tickets Host sets the count. 0 extra is still 1 ticket. Gate-only: that number is tickets. Gate + extras: 1 to enter, then extra-ticket roles add. Stack or best. Roles list low → high. ### tickets Server tag ### tickets Host can require a Discord server tag (e.g. TESS) or give extra tickets if you wear it. One tag at a time — the one on your name. ### tickets Elite ### tickets +5 on every raffle, added on top — never multiplied. A team can turn that extra off in Settings; role tickets still count. ### tickets Follow Tessera ### tickets Optional on every raffle. Follow @tesserafi for +1 extra ticket in every raffle for the next 3 days. Never a gate. ### tickets Tessera Discord ### tickets Optional. Be in discord.gg/tessera for +1 extra ticket in every raffle for the next 3 days. Stacks with the follow bonus. Never a gate. ### tickets Collab request ### tickets First person to submit a project with /collab in Tessera Discord gets +100 tickets when they enter the raffle Tessera hosts for that project. Raffles other communities host do not include it. They still enter. Never a gate. ### tickets Elite is Tessera’s only paid plan. Details: Premium. ### if-it-fails You see ### if-it-fails Meaning ### if-it-fails Do ### if-it-fails X follow / Like & Repost red ### if-it-fails Session stale, or Tessera has not seen the repost yet ### if-it-fails Repost (or quote-repost) the tweet on X, wait a few seconds, Verify all. You do not need to undo a repost that already exists. ### if-it-fails Super Follow “not subscribed” ### if-it-fails List is hidden, or they subscribed to someone else ### if-it-fails Uncheck Hide your subscriptions at Profile customization. X still shows “1 Subscription” when who is hidden. Then Recheck. X Premium (blue) is not Super Follow. ### if-it-fails Discord role never passes ### if-it-fails Membership not refreshed ### if-it-fails Bot in the server, user has the role, Reconnect Discord ### if-it-fails Wallet error ### if-it-fails Address not on their profile ### if-it-fails Link it, then pick it again ### if-it-fails Share the link. Entrants complete checks on their own Discord, X, and wallets. --- # Tessera Docs URL: https://tesserapp.org/docs Raffles, Engage, Tools — create, gate, draw, Discord commands. Tessera is the site you use to run raffles (giveaways) for a Web3 community. You set the prize and the rules, share a link or Discord embed, and Tessera draws the winners. This docs set is for collab managers — people who host raffles, not people hunting entries. Where it lives: Where Docs Raffles tesserapp.org — create, gate, draw, Winner Hub Sidebar Raffles Calendar tesserapp.org/calendar — mint days; Discord /set calendar Mint calendar Engage Discord category 🔶 TESSERA RAID — raids, points, raid raffles, role shop Sidebar Engage Tools Discord slash commands — mint cards, X monitor, name check Discord commands ### first-win Quickstart — sign in with Discord, link a wallet and X. ### first-win Create a raffle — title, end time, winner count. ### first-win Draw winners — pick, then announce on Discord. ### first-win Run a tiny test first: 1 winner, no gates. Learn the buttons before a real collab. ### raffles Site giveaways. Public URL. Winner Hub. ### raffles Sign in, link wallet and X. ### raffles Raffles, requirements, teams, templates. ### raffles Details, gates, Discord, publish. ### raffles Draw, Pick / Remove, announce. ### raffles Deal sheet, auto Posted / Submitted, personal WL. ### engage Discord-only. /raid setup builds the category and five channels. ### engage The loop: raid → points → spend. ### engage Invite the bot, run /raid setup. ### tools Discord slash tools. One page lists every command; the three below have full how-tos. ### tools Every / command — who can run it, what it does. ### tools Drops on the site, daily cards with /set calendar. ### tools /x-monitor posts new originals into a channel. ### tools /twitter name-check past handles and display names. ### more Elite — $20 / 30 days, or prepaid 3 / 6 months. ### more Webhooks when a raffle goes live or a project is added. Read feed. Partner write. ### more Sign-in, Discord, X subscribe, announce. ### more You share a link. Entrants complete checks on their accounts. You do not fill requirements for them. --- # Leaderboard and team pages URL: https://tesserapp.org/docs/leaderboard Public ranking of top communities, raffles, and creators — plus every team’s public page. The leaderboard ranks communities, public raffles, and creators. No sign-in required. Linked from the top nav. ### this-week Communities · 7 days · Entries is the rewarded board through 4 Oct 00:00 UTC. Rank is total entries on raffles created in that window. ### this-week Place ### this-week Prize ### this-week 1st ### this-week $100 USDT + 8 Elite ### this-week 2nd ### this-week 8 Elite ### this-week 3rd ### this-week 5 Elite ### this-week Podium communities pick who gets the Elite seats. Open it here: tesserapp.org/leaderboard?period=7d&cSort=entries. ### boards Three boards side by side on desktop; one tab at a time on mobile. ### boards Board ### boards Default sort ### boards Other sorts ### boards Communities ### boards Raffles created ### boards Entries · Winners ### boards Raffles ### boards Entries ### boards — ### boards Creators ### boards Raffles created ### boards Entries ### boards Top 20 per board. The large proof number always matches the active sort. Private entry lists stay off the board. ### boards Community pictures use the team upload first, then the X avatar, then the Discord server icon if the X image is gone. Switching period or sort keeps the list on screen. ### periods Shareable ?period= filter: all time, 30d, 7d, 24h. Sort chips use cSort / crSort. Optional board= deep-links the mobile tab. ### team-pages Every team has tesserapp.org/teams/. Open it from the Communities board or a host name on a raffle. ### team-pages On the page ### team-pages Stats ### team-pages Entries, winners, average per raffle, win rate ### team-pages Most-hyped raffle ### team-pages Most-entered raffle ### team-pages Owner card ### team-pages Who runs the team ### team-pages Links ### team-pages Discord and raffles ### team-pages No extra setup — create a team, run raffles, the page fills. ### team-pages Send the team page instead of screenshots. Numbers are live. --- # Managing raffles URL: https://tesserapp.org/docs/managing-raffles Find, edit, extend, duplicate, and share raffles from Dashboard. Manage live and ended raffles from Dashboard. They belong to the Discord account that created them (or the team you hosted under). ### find-a-raffle Use Dashboard → Raffles, not only the homepage (homepage is a short live list). Sign in with the same Discord. ### what-you-can-do Action ### what-you-can-do When ### what-you-can-do Edit ### what-you-can-do Title, end time, requirements ### what-you-can-do Share ### what-you-can-do Copy the public link ### what-you-can-do Post Discord ### what-you-can-do Post or re-post the embed ### what-you-can-do Extend ### what-you-can-do Add time while still live ### what-you-can-do Duplicate ### what-you-can-do Copies settings into a new create form ### what-you-can-do Export ### what-you-can-do Entries or winners ### what-you-can-do Winners Hub ### what-you-can-do Draw, Pick / Remove a seat, announce ### what-you-can-do Don’t delete a live raffle people already entered. Extend it or let it end. ### what-you-can-do Host under a team if several people need access. Team Raffles can filter by day / week / month (UTC, created date) and export that list to CSV or paste into a sheet. ### what-you-can-do Prefer Duplicate, or apply a template, instead of rebuilding the form. --- # X name check URL: https://tesserapp.org/docs/name-check Past handles and display names for an X account. /twitter name-check reconstructs an account's handle and display-name history from public archives. X itself stores none of this — old handles 404 after a rename. Needs the Tessera bot in the server. Anyone can run it. Result is private to you. ### run /twitter name-check ### run handle — @yvngxruddy or x.com/yvngxruddy ### run Takes up to a minute. First check remembers the live name and id, then walks public archives. ### read The panel shows: ### read Now — live display name, handle, numeric id, created month ### read Handles — every @ this account used, current or past ### read Display names — frozen name and @handle from archived tweets ### read Reuse — this account's past handles, or this handle on other accounts ### read Empty is a real result. Quiet or new accounts often have nothing archived. Gaps in the timeline are normal. ### read Each archived tweet is a timestamped photo of both the handle and the display name. Recent years may only show the live pair. --- # Premium URL: https://tesserapp.org/docs/premium Elite is the only plan — 1 month Elite $20, 3 months Elite $49, 6 months Elite $89. +5 tickets, raffle worker, raid worker, Elite Discord role. Elite is Tessera’s one paid plan. It runs a worker that completes X tasks with your connected accounts, and adds +5 tickets on every raffle. ### plan There is one plan. No Starter / Pro / Ultra. ### plan Plan ### plan Elite ### plan Price ### plan 1 month Elite $20. 3 months Elite $49 (save $11, 18%). 6 months Elite $89 (save $31, 26%). Time stacks. ### plan Pay with ### plan USDT on BNB Smart Chain (BEP-20) ### plan Tickets ### plan +5 on every raffle, added to Discord-role tickets (not multiplied) ### plan What you get ### plan +5 extra tickets on every raffle, on top of Discord roles ### plan Raffle worker enters raffles in communities you turn on (follow / like / RT / reply with your X) ### plan Raid worker likes the tweet and claims points ### plan Elite Discord role on the Tessera server ### plan Time stacks on days you already have ### plan Super Follow, Discord, and X-profile gates stay. Paying does not start the worker — press Start worker on Premium. Elite +5 always applies. Host control over extras comes back with Team Plans (TBA). Elite still has to join the server and hold the roles on the raffle. They only skip X follow / like / RT / reply. ### plan Open tesserapp.org/premium. Pick 1 month Elite, 3 months Elite, or 6 months Elite on the card — same plan, prepaid terms take 18% and 26% off. Free can browse communities. Starting the worker is Elite-only. ### plan Pay from that page. Each order gets a fresh deposit address. Elite unlocks when the chain confirms — site access and the Elite Discord role on the Tessera server. BSC only — not Ethereum, not Solana. Wrong chain = funds lost. ### plan Older Starter / Pro / Ultra payments still count as Elite until they expire. ### gift-elite Pay Elite for a member from Premium. Same checkout as buying for yourself, including 3 and 6 month prices. They need a Tessera account with Discord linked. Time stacks. ### gift-elite Community managers use this to cover a month instead of sending cash. Type their Tessera username or Discord ID, confirm the match, then pay. ### gift-elite Team → Members → Gift Elite opens Premium with their name filled in. ### before-you-start Signed in with Discord ### before-you-start X connected with write (auto follow / like / repost). Read-only X is not enough for the worker — reconnect X from /premium if it says so ### before-you-start Wallet on your profile if the raffles you farm require one ### tickets Discord roles stay as ticket counts (stacked or highest, per raffle). Elite adds +5 on top. Never multiplied. A team owner can turn the +5 off in team Settings — Elite can still enter, role tickets still count. Teams. ### open-premium--raffles-tab The worker enters raffles in the communities you pick and completes their X requirements (follow, like, repost). ### pick-communities Toggle the servers to farm. Farm all selects everything. Rows show how many raffles are live per community. ### pick-communities Join a Tessera server, then Refresh on Premium so it appears. You can still open any raffle and enter by hand. ### twitter-open-optional On by default for Elite. Also enter live raffles that have no Discord requirement — Twitter and wallet only, or skip-X when Discord isn’t required. You do not have to be in that community. Community raffles are tried first. An unentered community raffle does not hold these back. Turn it off to stay in your communities only. ### start-worker Press Start worker. The run log timestamps follows, entries, and failures. Stop pauses it. ### start-worker Each raffle is an attempt: missing Discord / role → Blocked. Pass → Entered. About 10s between enters. A slow check on one raffle does not stop the next one. ### start-worker Super Follow, required Discord (server, gated role, or tag), and X profile gates (Blue verified, min followers, min tweets, min age) are never skipped. Elite auto-enter completes follow / like / repost / reply. When the host turns Make Discord tasks optional on, people can enter without joining Discord or linking an account. Gated roles still required — Elite farm will not skip them. Extra-ticket roles add tickets if you have them. If remaining hard gates fail, you are not entered. ### start-worker On raffle pages you open yourself, Elite also auto-follows and auto-likes. Entries still get the +5 ticket bonus unless that team turned extras off. ### switch-to-the-raids-tab Same page — segmented control to raids. ### pick-raiding-communities Toggle servers you are in whose live raids you want claimed. Rows show raids live right now and your raid points on that server. Saving the list does not start the worker. Your full list (every server you earned in) is on your profile. ### start-the-raid-worker Press Start raid worker. Stop stays stopped until you press Start again — membership sync will not turn it back on. ### start-the-raid-worker When a raid goes live in a picked community you are in, the worker likes the target tweet with your X account, then claims the quest points. It does not claim raids in servers you left, and it does not raid every Tessera community. ### start-the-raid-worker The worker never claims a raid it did not like. If the like fails, it retries on the next pass. ### run-log-and-wins Both tabs show live KPIs and a run log (follows, entries, raid claims, failures). ### run-log-and-wins The worker card lists recent confirmed wins — raffle, wallet, tickets. The Tessera Discord bot also DMs you You won with the raffle link and the wallet that should claim. ### run-log-and-wins The same bot DMs you when Elite is 7 days, 3 days, and 1 day from ending, and again when it ends. Same notice as the #premium channel. The 3-day, 1-day, and ended notes include how many raffles you entered this month and how many spots you won. The site header and raffle pages also show the end date. Renew on Premium. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Reconnect X for auto-tasks ### if-it-fails Relink X with write from /premium ### if-it-fails Worker will not start ### if-it-fails Pay for Elite; wait for BSC confirmations ### if-it-fails Discord / wallet miss in the log ### if-it-fails Link them on profile, then the next pass retries. Zcash raffles use your linked u1 / extras — not your ETH wallet. NEAR raffles use your linked NEAR account. Sui raffles use your linked Sui address (0x + 64 hex). Monero raffles use your linked Monero address (starts with 4 or 8). ### if-it-fails Raid worker turns itself back on ### if-it-fails Stop is sticky. Pick communities, then Start. Sync no longer auto-starts raids. ### if-it-fails Super Follow / Discord / Blue miss ### if-it-fails Hard gates — auto-enter will not skip them. Subscribe, join, or reconnect X for Blue, then the next pass retries ### if-it-fails Paid on the wrong chain ### if-it-fails BSC BEP-20 USDT only — other chains will not unlock Elite ### referral Active Elite members get a referral link on profile. ### referral Someone opens that link, signs in, and pays for Elite. Both of you get +5 days on that first payment. ### referral Your Elite has to still be active when they pay ### referral One bonus per invited account ### referral You cannot use your own link ### referral Share tesserapp.org/r/yourcode or copy it from profile. --- # Referrals URL: https://tesserapp.org/docs/referrals Share your link. When they pay for Elite, you both get +5 days. Active Elite members can invite. The invitee pays once. Both subscriptions extend 5 days. ### get-your-link Open your profile. Copy the referral URL (tesserapp.org/r/…). ### get-your-link The same page is where you mint a user API key for the partner write API. ### what-counts They open your link (cookie lasts 30 days) ### what-counts They sign in ### what-counts They pay for Elite (USDT on BSC) ### what-counts When that payment credits, Tessera adds +5 days to their new Elite and +5 days to yours. ### what-counts Rule ### what-counts Your Elite ### what-counts Must be active at the moment they pay ### what-counts Bonus ### what-counts First paid order for that invitee only ### what-counts Self-invite ### what-counts Blocked ### what-counts This extends Elite time only. --- # Winner Hub URL: https://tesserapp.org/docs/selecting-winners Draw winners, replace a seat, announce on Discord, export. Winner Hub is where you draw, fix a seat, announce, and export. Open it from the raffle page → Winners. Collab Managers linked to that team can open it, and so can the team owner and the person who created the raffle. MOD/NPC cannot. Everyone else sees a private page, including after announce. The draw picks from every valid entry. Elite extra tickets always apply. Host control over extras comes back with Team Plans (TBA). If Auto-draw winners when raffle ends is on, the list fills at end time. Nothing posts to Discord until Announce to Discord. ### build-the-list Preview ×5 draws — simulate only. Does not save winners. ### build-the-list Draw winners / Pre-draw — random shortlist. If some seats are already filled, Draw remaining keeps them. ### build-the-list All entries win — on at create. Draw gives a win to every entrant. No empty seats. ### build-the-list Re-run pre-draw — asks first, then throws the list out and draws again. ### build-the-list On each winner row: ### build-the-list Button ### build-the-list What it does ### build-the-list Re-roll ### build-the-list Random new entrant for that seat ### build-the-list Pick ### build-the-list Click an entrant on Entries to take that seat ### build-the-list Remove ### build-the-list Vacate the seat. Then Pick who fills it ### build-the-list Vacant seats show Pick. Click an entrant. Does not post to Discord. ### announce When the list looks right, Announce to Discord. Order is always: ### announce Post the winners list in Discord — one compact line of mentions per tier (not one name per line) ### announce Then DM winners (if Wins is on in their profile) ### announce The DM links to the raffle and names the community, with a link to its page and its Discord invite when one is set. Winner Hub stays with Collab Managers on that team. ### announce If the raffle has a winner role, Tessera assigns it on announce. A tiered raffle gets one role per tier, named from the tier. One pool uses the role name you set. Auto-created roles cannot be @mentioned by everyone in the server. The role is assigned with the announce. A slow Discord post does not skip it. The Tessera role in that server needs Manage Roles, and it has to sit above the winner role. ### announce Tessera removes auto-created winner / WL roles 72 hours after the project mints on the mint calendar. That window covers drops that slip a day or two. A role you picked from the server list stays. Roles for projects that already minted are cleaned up the same way. ### announce After the first announce: pick a Channel → Re-announce. Remove / Pick / Re-roll still work — Discord stays as-is until you re-announce. Already-sent DMs are not unsent. ### visibility-and-export Winner Hub stays with Collab Managers on that team. Signed-in users see their winning wallets on the project page (/project/{handle}). Export winners or entries for allowlists (CSV on the page, or Google Sheets). Winner Hub opens even when some profiles are incomplete. ### payout-wallet After the draw, a winner can paste the correct mint wallet on the raffle page. Seat stays. No re-roll. ### payout-wallet On Winner Hub, Set wallet on a row does the same from your side. Export (CSV / Sheets) then uses that address. ### payout-wallet If the raffle asked for Zcash u1 and an entry still has an ETH 0x… (old Elite auto-enter), export skips it and falls back to a linked u1 — or stays blank until they paste one. ### team-wallets Add TEAM wallets is extra rows for team member wallets. They are not prize seats. They still export in CSV / Sheets. Remove them with Remove on the TEAM tab. ### confirm-discord-posts Discord Status checks the real Discord messages (not just a saved id). Live on Discord means the post is there. Not on Discord means it was deleted or never landed — Re-post embed / Re-announce sends a new one. View message only shows when the post is live. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Announce fails ### if-it-fails Channel perms — Discord bot setup, then announce again ### if-it-fails Not on Discord / deleted ### if-it-fails Re-post embed or Re-announce — that sends a new message ### if-it-fails Need a different person in a seat ### if-it-fails Pick on that row, or Remove then Pick ### if-it-fails Page error / sheet export ### if-it-fails Refresh Winner Hub, then export again ### if-it-fails Draw, Pick, and Remove stay on the site. Re-announce when Discord should match. --- # Create a team URL: https://tesserapp.org/docs/teams Shared host for a Discord server — members, templates, bypass role, Elite +5, public page. A team is a shared host tied to a Discord server. Members create and manage raffles together. The bot can post announcements for that server. ### before-you-start Ban Members or Administrator in the Discord server (proves you can found the team) ### before-you-start Permission to invite the Tessera bot if it is not in the server yet ### before-you-start Project X is optional. Paste @handle or an x.com link on team setup, use the X already on your Tessera profile, or add it later on the team page. Any account works. One team per handle. ### open-create-team tesserapp.org/team/setup or Dashboard → create team. ### team-details Team name required. Description and accent color are optional. ### social Select the Discord server and press Verify. Tessera checks Ban Members (or Administrator). Missing the server? Invite Tessera with Manage Server, then refresh. Ban Members alone cannot add the bot. ### social Project X is in this same step. Link checks the profile. You can also type the handle and create, or leave it empty and add it later on the team page. ### create Create Team lands you on the team. ### members Team → Members → Discord username, Discord ID, or platform user ID → Add. They must have signed in to Tessera at least once. ### members Make owner transfers ownership to an invited member. ### members Owner and collab managers can Gift Elite from the members list — it opens Premium with that username filled in. ### members Anyone in Members can create and manage that team’s raffles and open Winner Hub. ### bypass-role A Discord role on the team server. Anyone with it can enter that team’s raffles without completing the listed tasks. Wallet is still required if the raffle asks for one. ### bypass-role Not automatic for team members. You assign the role — only to people you trust. ### create-the-discord-role Server Settings → Roles. Name it whatever you want. Give it only to people you trust (you, CMs). ### open-team-settings Dashboard → the team → Settings. Owner only. ### pick-the-role Bypass role → select it → Save. ### pick-the-role Clear it the same way: set None, Save. ### elite-5 Elite members get +5 tickets on every raffle, on top of Discord role tickets. They still have to join the server and hold every Discord role you set on the raffle. Elite only skips X follow / like / RT / reply. ### elite-5 Teams cannot turn this off. Host control over extras comes back with Team Plans (TBA). ### elite-5 Existing entries keep the tickets they already stored. ### raffle-order Public team page and the member Raffles tab. ### raffle-order Scope: All, Live, Ended. ### raffle-order Sort: ### raffle-order Newest — created last, at the top. This is the default. ### raffle-order Oldest — created first, at the top. ### raffle-order Ending — live raffles first, soonest to end at the top. Ended raffles follow. ### raffle-order Entries — most entries at the top. ### raffle-order Period (member Raffles tab): All, Day, Week, or Month. Week is Monday–Sunday. Times are UTC. The list is raffles created in that window — pick September to recap that month’s collabs. ### raffle-order Export the visible list: CSV downloads a file, Copy for Sheets pastes into Google Sheets or Excel. Columns: created, title, project X, X link, spots, winners, entries, status, ends, raffle URL. Scope, search, and period all apply to the export. ### raffle-order The public page keeps Live and Past as two lists. Each list uses the sort you picked. Member overview Latest raffles is the eight newest. Time chips still show time left or how long ago a raffle ended. Hover a chip for the exact end date. ### public-page Every team gets tesserapp.org/teams/ — stats, owner card, raffles, Discord. No extra setup. Top teams also appear on the Leaderboard. ### public-page Without Ban Members (or Administrator) in the server, team create will not verify. Ask a server admin. --- # Wallets and auto-rotate URL: https://tesserapp.org/docs/wallet-rotate Link extra wallets and cycle them on each entry. Link more than one wallet per chain. Auto-rotate sends each raffle entry to the next wallet in the list instead of always the starred default. ### how-rotation-works Order = the wallets on that chain’s profile card (primary first, then extras). Entry 1 → wallet 1, entry 2 → wallet 2, then loop. ### how-rotation-works Applies to site entry, Discord embed entry, and Premium auto-farm — any chain with 2+ linked wallets. The toggle lives on the EVM card. ### how-rotation-works On a raffle, the wallet shown is the one rotation will use, skipping an address already used on that project. Change it if you want a different one. A wallet you pick yourself wins for that entry and does not advance rotation. The wallet stored on the entry is what Winner Hub shows later. ### default-wallet-per-community On Premium, each Discord server row can pin a wallet per chain (EVM, Solana, Bitcoin, Zcash, NEAR, Sui, Monero). That address is used when you enter that community’s raffles from the site, Discord, or Elite auto-farm. ### default-wallet-per-community Empty = Auto-rotate (if on) or the starred default. A pick on the raffle page still wins for that one entry. ### default-wallet-per-community Use this when three servers run the same project and you want a different wallet on each. ### gtd-and-fcfs-wallets When a raffle has both GTD and FCFS winner seats, the entry panel shows two picks: ### gtd-and-fcfs-wallets GTD wallet — your main wallet for the guaranteed allocation ### gtd-and-fcfs-wallets FCFS wallet — a secondary wallet for first-come minting ### gtd-and-fcfs-wallets Link a second wallet on profile if you want them split. With one wallet, both seats use it. ### gtd-and-fcfs-wallets Auto-rotate and Elite auto-enter pick GTD from the rotation (or your community pin). FCFS takes the next address after that GTD wallet until you change it. An address already used on this project is skipped while another is still free. The main wallet is used for FCFS only when every other address on that chain is already spent. A wallet you pick yourself on the raffle page still wins for that seat. The same address for GTD and FCFS is allowed. On Discord, after you pick the wallet, FCFS can use that same wallet or the next free address. Auto-rotate on Discord still uses the next free address. ### gtd-and-fcfs-wallets Hosts see the wallet for that seat in Winner Hub / export. ### link-extras Profile → EVM, Solana, Bitcoin, Zcash, NEAR, Sui, or Monero → Add wallet. Mass-add: one address per line. Star a default. Up to 100 extra wallets per chain. Zcash extras can be u1 or t1/t3. NEAR accepts a named account (alice.near), a 64-hex implicit ID, or 0x ETH-implicit. Sui is 0x plus 64 hex characters (a shorter 0x address is an EVM wallet, not Sui). Monero is a mainnet address that starts with 4 or 8 (95 characters, or 106 for an integrated address). The checksum has to match. An email-style alias is not an address. ### turn-auto-rotate-on Profile → EVM wallets → with 2+ wallets, Auto-rotate on entry → On. ### turn-it-off Same toggle Off. Entries use the starred default. The cursor is remembered — re-enabling continues where it left off. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Toggle missing ### if-it-fails Own profile, EVM card, 2+ wallets ### if-it-fails Selected wallet does not belong to your account ### if-it-fails Link that address first ### if-it-fails Rotation started mid-list ### if-it-fails Saved cursor — toggle off/on to restart at wallet 1 ### if-it-fails Wrong wallet on a win ### if-it-fails Entry stored the wallet at enter time ### if-it-fails With a single wallet, rotation never runs. --- # X tweet monitor URL: https://tesserapp.org/docs/x-monitor Post new tweets from an X account into a Discord channel. Tessera watches X handles and posts new originals into a channel you pick. Card shows handle, text, photos, a quote if there is one, and posted → forwarded in Ns. Open on X. Needs Manage Channels or Administrator. The bot needs View Channel, Send Messages, and Embed Links in that channel. ### open-the-panel /x-monitor ### open-the-panel Private panel. Only you see it. ### open-the-panel Add handle — paste @tesserafi or x.com/tesserafi ### open-the-panel Post tweets into… — the channel for new originals ### open-the-panel Active handles list on the panel ### open-the-panel Stop watching… or Stop all ### open-the-panel First check remembers what’s already live. History does not dump. ### stop Stop watching… or Stop all on the panel. ### stop Up to 5 monitors per server. Replies to other people and reposts stay off — only that account’s own posts. ### if-it-fails You see ### if-it-fails Do ### if-it-fails Need Manage Channels ### if-it-fails You need Manage Channels or Administrator ### if-it-fails Can’t see that channel ### if-it-fails Give the bot View Channel + Send Messages + Embed Links ### if-it-fails Couldn’t read @handle ### if-it-fails Check the handle exists and isn’t protected ### if-it-fails Command missing ### if-it-fails Invite Tessera, then type /x-monitor — it can take a few minutes on a new server --- # Engage URL: https://tesserapp.org/docs/engage What Engage is — raids, points, raffles and a role shop inside your Discord server. Engage is the Discord side of Tessera — not the site raffle product. Site raffles (create, gates, Winner Hub) live under Raffles in this docs set. Engage turns a server into a points loop: Members do simple X (Twitter) actions — Like, Repost, Reply — to earn points. Points are spent on raffle tickets (enter prize draws) or roles (in the shop). Think of points like arcade tickets: play a machine, earn tickets, spend them on prizes. ### the-big-loop A raid goes live in 🔶|live-raids (a tweet with action buttons). ### the-big-loop Members do the tweet on X — like, repost, reply. ### the-big-loop They press Check in Discord → points land in their balance (this server only). ### the-big-loop Points can buy tickets on raffles in 🔶|raid-raffles, or roles in 🔶|marketplace. ### the-big-loop Members can see their points in that server with /raid profile. Every server they earned in is on their Tessera profile. ### the-category /raid setup creates one Discord category — 🔶 TESSERA RAID — with five channels. Each page below is one of those channels. Open a channel. ### who-does-what Admins / community managers run /raid create, /raid raffle, and set up the shop. They check #raid-ops to watch the loop. ### who-does-what Members do the tweet, press Check, and spend points. They never touch the admin commands. ### where-do-points-come-from Points come from raids only — not from chatting in the server. No raid, no points. ### next Run /raid setup, invite the bot, make the channels. ### next The first X raid, and how members earn points. ### next List roles members can buy with points. --- # 🔶|live-raids URL: https://tesserapp.org/docs/engage/live-raids Where X raids go live. Members do the tweet, press Check, and earn points. 🔶|live-raids is where raids go live. A raid is a tweet mission (like, repost, reply). Members do it on X, press Check in Discord, and points land in their server balance. ### find-the-raid-post The newest raid shows the tweet and what to do — Like, Repost, or Reply (some raids ask for all three). ### do-the-actions-on-x Go to the tweet and do exactly what the raid asks. Do it before you press Check. ### do-the-actions-on-x If the raid has Reply quality, tap Guide first. Write an actual take — not LFG, let’s go, nice, good, or that’s true. Don’t copy someone else’s reply. Check learns from passes. ### press-check Tap Check on the raid post. The bot checks your X actions and pays you points. The reply is visible only to you, so the channel stays clean. ### press-check Partial actions = partial points. Do every action to get full points. ### press-check Check your balance in that server with /raid profile. Every server you earned in is on your profile — name and points, one list. /raid leaderboard is the top raiders in that server. ### run-raid-create In 🔶|live-raids, type /raid create. It opens a builder only you can see. ### fill-the-builder Paste an X / Twitter link to the tweet ### fill-the-builder Pick the actions: Like, Repost, Reply ### fill-the-builder Points default to 5 per action — change it if you want ### fill-the-builder Duration — presets through 7 days (48h / 72h / 7d). Custom takes hours or days (48, 2d, 7d) ### fill-the-builder Optional: ping a role. Type the role name — same picker as Pick role. Or No ping / @everyone / @here ### fill-the-builder Role ON auto-creates {handle} raid #N, or tap Pick role for a custom one. Unlocks after any one task ### fill-the-builder Optional Quality on Reply — raiders tap Guide; Check rejects keyword-bag templates ### fill-the-builder Check the PREVIEW — it matches exactly what gets posted ### post-it Tap Post. The raid goes live as a card with the tweet and buttons. Members start earning. ### edit-a-live-raid Posted raids have a Settings button (second row). Admins only. ### edit-a-live-raid Opens the same builder on the live post. The preview shows tweet stats (likes, reposts, replies) and this raid (claimed / in progress). Save updates that message — no second ping, no new post. ### edit-a-live-raid When the raid ends, Settings is replaced with Statistics (admins only). Same counts, plus who claimed. ### raid-auctions-admins /raid auction lets admins auction spots (like whitelist spots) for raid points. You build the auction with buttons — item, price, number of spots, duration — members bid with points, and the highest bids win when it ends. Points are held safely while the auction runs, so nobody can bid points they've already spent. ### raid-auctions-admins Admins can also fix balances directly with /raid points — add or remove points for any member. The server owner can zero every balance on this server with /raid reset (confirm: True). Old raid claims stay, so those tweets can't be farmed again. ### good-to-know Points are per server — earning here doesn't move to another server. Your profile lists every server and the points on it. ### good-to-know The raid role unlocks after a member completes any one task (if you turned it on). ### good-to-know Keep the TESSERA role above the raid role in Server Settings, or members can't be given the role. ### if-something-breaks Issue ### if-something-breaks Fix ### if-something-breaks "Failed to post" (413) ### if-something-breaks The video is too big for this server — Tessera retries with a Watch-video link; use a shorter clip or a photo tweet ### if-something-breaks "Failed to post" (403) ### if-something-breaks Give the bot Send Messages, Embed Links, Attach Files in this channel ### if-something-breaks Settings is locked ### if-something-breaks Raid settings are Administrator only ### if-something-breaks Statistics after the raid ends ### if-something-breaks Administrator only — claims, in-progress checks, likes / reposts / replies ### if-something-breaks Duration stops at 24h ### if-something-breaks Pick 48h / 72h / 7d, or Custom and type 48 or 2d (max 7 days) ### if-something-breaks Ping role missing from the list ### if-something-breaks Type the role name — it is a search, not a 25-item dropdown ### if-something-breaks Members got no raid role ### if-something-breaks Turn Role ON (auto or Pick role) in the builder before Post ### if-something-breaks /raid leaderboard hangs ### if-something-breaks Run it in the server. Reply is private to you. ### if-something-breaks /raid marketplace missing ### if-something-breaks Re-invite the bot or wait a minute after Tessera updates commands ### if-something-breaks Points not landing ### if-something-breaks Make sure members press Check — points come from Check, not from doing the tweet ### next Turn earned points into raffle tickets. ### next Spend points on roles. ### next The four-step start guide. --- # 🔶|marketplace URL: https://tesserapp.org/docs/engage/marketplace The role shop — members spend points to buy roles. Set up items, prices and spots. 🔶|marketplace is the role shop. Staff list roles with a points price and a spots cap (0 = unlimited). /raid marketplace opens setup. Members press Buy item, confirm, and get the role. Servers with many roles: Set up items → Add new item shows the top 24, plus Search all roles… — type the exact name or paste the role ID. ### read-the-board The pinned board lists every role for sale — name, points price, and spots left. If a line is crossed out, it's sold out. ### read-the-board The board lists roles cheapest-first — the least expensive one sits at the top. ### press-buy-item Tap Buy item under the board and pick the role you want from the list. ### confirm You see the role, the price, your balance, and the spots left. Press Confirm buy to pay. Points leave your balance and the role is yours instantly. ### confirm Want to back out? Press Cancel — nothing is spent. ### confirm Check your balance in that server with /raid profile. Every server you earned in is on your profile. ### press-set-up-items Tap Set up items under the board, or run /raid marketplace. Staff only — everyone else sees Buy item. ### add-a-new-item Add new item ### add-a-new-item Pick the role members should be able to buy ### add-a-new-item Set the Price in points ### add-a-new-item Set Spots — how many buyers are allowed (0 = unlimited, 1 is a single unique role) ### add-a-new-item Save it. A new-listing announcement posts with a role ping so members see the shop just updated. ### edit-or-remove-items Edit item — change the price or spots (useful to bump a price up or down). ### edit-or-remove-items Remove item — take one off the board. ### edit-or-remove-items Remove all — wipe the whole shop. ### edit-or-remove-items When a buyer takes the last spot, the board marks the role as sold out automatically. Nothing extra to do. ### good-to-know Admin only: the "Set up items" menu is hidden from everyone else. ### good-to-know No inventory counting: spots is the cap. If spots = 10, the 11th buyer gets a "sold out" message. ### good-to-know Buying is instant: no waiting, no manual role-giving — the bot assigns the role on confirm. ### good-to-know Staff can watch every buy in raid-ops. ### if-something-breaks Issue ### if-something-breaks Fix ### if-something-breaks "No roles to list yet" ### if-something-breaks Create the role in Server Settings first, then Add new item ### if-something-breaks "Sold out" when you expected to buy ### if-something-breaks All spots were taken — the line is crossed out on the board ### if-something-breaks Role not appearing after buy ### if-something-breaks Check the bot's Manage Roles permission and that TESSERA is above the bought role ### if-something-breaks Board looks wrong ### if-something-breaks Staff: Remove item + Add new item to rebuild it, or re-run /raid setup ### next Points come from raids — go earn some. ### next Staff can audit every buy. ### next The other way to spend points. --- # 🔶|raid-info URL: https://tesserapp.org/docs/engage/raid-info The read-only how-it-works guide channel — the front door to the Engage kit. 🔶|raid-info is the read-only guide for Engage. One pinned message explains the points loop. Members can read it; only staff can post. ### what-you-see-inside One pinned message with four stacked cards: ### what-you-see-inside What is Tessera? — one short intro to the toolkit. ### what-you-see-inside How to start? — the four-step loop (raid → do the tweet → Check → spend points). ### what-you-see-inside How to get points? — points come from raids, never from chatting. ### what-you-see-inside How to use points? — raffle tickets, shop roles, and the /raid commands. ### how-to-use-it Members: read it once — it answers "where do I get points?" and "what do I do with them?". Then head to live-raids. ### how-to-use-it Staff: this is the front door. If a member asks how points work, point them here. ### how-to-use-it The four-step start guide, as a picture: ### want-to-change-the-guide The guide is posted by the bot. Re-run /raid setup and it re-posts the current version. You don't hand-write these messages. ### if-something-breaks Issue ### if-something-breaks Fix ### if-something-breaks The guide is missing or old ### if-something-breaks Re-run /raid setup to re-post it ### if-something-breaks Members can't see it ### if-something-breaks Give them View Channel on this channel (read-only for everyone) ### if-something-breaks Can't pin ### if-something-breaks Re-invite the bot with Pin Messages, then re-run /raid setup ### next Where raids go live and how to press Check. ### next Turn points into raffle tickets. ### next The whole loop at a glance. --- # 🔶|raid-ops URL: https://tesserapp.org/docs/engage/raid-ops The staff-only log — every claim, ticket buy, marketplace purchase and draw, recorded automatically. 🔶|raid-ops is the staff-only log. The bot records claims, ticket buys, shop purchases, and draws. Members usually cannot see this channel. ### what-gets-logged The bot writes a short card for every event: ### what-gets-logged Event ### what-gets-logged What the card shows ### what-gets-logged Raid claim (Check) ### what-gets-logged Who claimed, what actions they did, points earned, their X + Discord info ### what-gets-logged Raffle ticket buy ### what-gets-logged Who bought, how many tickets, points spent ### what-gets-logged Draw ### what-gets-logged Winners picked, entries settled ### what-gets-logged Marketplace buy ### what-gets-logged Who bought, which role, cost, balance left, and when (UTC) ### how-to-use-it Audit a claim or buy — open the card. You see the exact action, the person, and the points. ### how-to-use-it Check the loop is healthy — a steady stream of claim cards means raids are working. ### how-to-use-it Answer "did they really buy it?" — search the buy cards for the role name. ### how-to-use-it You don't post here — the bot does. If you need a member to see their points, they use /raid profile in this server, or the list on their Tessera profile. ### good-to-know Hidden from members: the room is private — only staff/admins can open it. ### good-to-know Automatic: nothing is typed by hand. No log entry = it didn't happen. ### good-to-know UTC timestamps: "When" is always UTC so times never get confusing. ### if-something-breaks Issue ### if-something-breaks Fix ### if-something-breaks Nothing appears in the log ### if-something-breaks Check the bot's Send Messages permission in this channel, then try a Check ### if-something-breaks "I can't see raid-ops" ### if-something-breaks This channel is staff-only — you're not on the allowed list ### if-something-breaks A claim shows partial points ### if-something-breaks The member only completed part of the raid's actions — partial = partial points ### if-something-breaks Something looks wrong ### if-something-breaks This is the first place to check — the log is the source of truth for the loop ### next Raids feed the log with claims. ### next Every buy lands here too. ### next The whole points loop. --- # 🔶|raid-raffles URL: https://tesserapp.org/docs/engage/raid-raffles Spend points on raffle tickets. More tickets, better odds. 🔶|raid-raffles is where points become prizes. Staff post a raffle, members buy tickets with points, the bot draws when time is up. More tickets = better odds. ### find-a-raffle Each raffle shows Ends in (countdown), Spots, and Price (points per ticket). ### press-buy-tickets Tap Buy tickets on the raffle post, pick how many tickets you want, and confirm. ### wait-for-the-draw Points leave your balance, tickets go in. When the timer hits zero, the bot draws winners fairly. ### wait-for-the-draw Running low on points? Go do another raid in live-raids. ### run-raid-raffle In 🔶|raid-raffles, type /raid raffle. A builder opens — only you can see it. ### set-the-raffle Title — what's up for grabs ### set-the-raffle Duration — how long it runs ### set-the-raffle Spots — how many tickets exist ### set-the-raffle Points per ticket — the price ### set-the-raffle Everything shows on the post, so members know the deal before they buy. ### post-and-let-it-run Post it. Members buy tickets. When the countdown ends, the bot draws and logs the winners in raid-ops. ### good-to-know Tickets cost points, never real money. ### good-to-know You can hold tickets on multiple raffles at once (if you have the points). ### good-to-know The draw is logged automatically — staff can audit who bought what. ### if-something-breaks Issue ### if-something-breaks Fix ### if-something-breaks "Failed to post" (403) ### if-something-breaks Give the bot Send Messages, Embed Links in this channel ### if-something-breaks Tickets not counting ### if-something-breaks Make sure members press Buy Tickets and confirm — buying cancels if not confirmed ### if-something-breaks No draw after countdown ### if-something-breaks Check /raid profile and the raid-ops log; re-run the raffle if the bot wasn't live ### next Spend points on roles instead. ### next Go do a raid. ### next Watch claims, buys and draws. --- # Set up Engage URL: https://tesserapp.org/docs/engage/setup Invite the Tessera bot, run /raid setup, and get all five channels created automatically. One command — /raid setup — builds the Engage kit: a 🔶 TESSERA RAID category with five channels, plus pinned guides and room welcomes. ### you-need Manage Server permission in the Discord server (or Admin) ### you-need The Tessera bot invited with its normal permissions ### you-need Keep the TESSERA role above any roles the bot hands out later (like raid roles) ### invite-the-tessera-bot Use the invite link, or do it from the site: Create a team / Team setup → Add Bot to Server. ### invite-the-tessera-bot After you allow it, check the member list shows Tessera. ### run-raid-setup Type /raid setup in any channel. It needs Administrator. ### run-raid-setup The bot builds everything: ### run-raid-setup the category 🔶 TESSERA RAID ### run-raid-setup the five channels below ### run-raid-setup the how-it-works guide (pinned in raid-info) ### run-raid-setup a welcome in each room ### run-raid-setup You see a live setup log in your reply: channel 1 created… channel 2 created… then the welcomes post. ### check-your-server-now-looks-like-this One category, five channels — same list as in Discord. ### check-your-server-now-looks-like-this Everything is ready. Post your first raid → live-raids. ### if-you-already-have-the-kit Running /raid setup again reuses channels it already finds (by name or by the same category) instead of duplicating them. Safe to re-run any time you want to refresh the guides. ### if-something-breaks Issue ### if-something-breaks Fix ### if-something-breaks Pin warning on setup ### if-something-breaks Enable Pin Messages on the TESSERA role, or re-invite the bot, then run /raid setup again ### if-something-breaks "Failed to post" (403) ### if-something-breaks Give the bot Send Messages, Embed Links, Attach Files in that channel ### if-something-breaks No raid-ops channel ### if-something-breaks Run /raid setup again; raid-ops is private, so only staff see it ### if-something-breaks Wrong guide text ### if-something-breaks Re-run /raid setup — it re-posts the current guide and welcomes ### next Drop an X raid with /raid create. ### next List roles members can buy. ### next The whole points loop at a glance.