Enter your username. A temporary password will be sent to the email address on your account.
Create account
Spend 1 token to reroll this card's modifiers?
Match history
MVP
Date
Fantasy pts
K/A/D
GPM
Wards
Tower dmg
Opponent
OpenDota
Players
Player
Matches
Avg pts
Total pts
ADD PLAYER
BULK ADD PLAYERS
Paste a comma-separated list of OpenDota account IDs.
REMOVE PLAYERS
Remove these players? Their active cards will be deactivated and card holders will each receive 1 refund token per card.
ADD LEAGUE TO MONITORING
PURGE LEAGUE DATA
This deletes all matches and stats for this league and stops monitoring. Fantasy scores must be recalculated manually afterwards.
CHOOSE A TEAM
KANA CARDS
Tokens
You are using a temporary password. Please set a new password below before continuing.
Account
Username
Password
Dota 2 Player
Link your OpenDota account ID. Future features may include granting you a card representing yourself as a player.
Your Tags
Link your Dota player ID above so your tag badges appear as stickers on your cards.
Past Seasons
Twitch Account
Twitch account linked
You are eligible to receive token drops while watching live streams.
Link your Twitch account to become eligible for token drops during live streams.
Open the Kana Cards extension panel on a Twitch stream and enter this code:
------
My Roster
This week: — ptsSeason: — pts
Bench
Draw
—
—
—
—
Stats, weights, rarity bonuses, and card modifiers are all explained on the tab. Values are live — they update whenever an admin adjusts the weights.
Season Standings
Rank
User
Season pts
—
Weekly Standings
Rank
User
Week pts
—
Past Seasons
Rank
User
Points
—
Players
Player
Team
Matches
Avg pts
Total pts
MVPs
—
Player average performance
#
Player
M
Avg
—
Single match performance
Rank
Player
Fantasy pts
—
MVP leaderboard
Rank
Player
MVPs
—
Teams
Team
Matches
Players
—
Season Schedule
Getting Started
Kana Cards is a fan-made card-collecting game tied to real Dota 2 league matches. Collect cards, build a roster, and score points based on how your players actually perform each week.
Cards & Drawing
Each card represents a real player from the Finnish Dota 2 league. Cards come in four rarities: Common, Rare, Epic, Legendary.
Draw a card by spending 1 token. Cards are generated fresh at draw time (rarity and player are rolled individually, not pulled from a shared pre-built deck) — the system prefers players you do not yet own — duplicates are only possible once you have a card for every available player.
Higher rarity cards receive a flat point bonus on top of base stats and may come with stat modifiers that amplify specific scoring categories.
Roster & Weekly Lock
Activate up to 5 cards as your active roster. Remaining cards sit on the bench and do not score.
Every week the roster locks automatically. Locked cards earn fantasy points from every league match played during that week.
You can swap bench cards in and out freely before the lock, but cannot change the roster once the week is locked.
Earning Tokens
+1 token at the start of each new week.
Watch streams on Twitch — linked viewers receive token drops when the broadcaster selects a match MVP.
Redeem promo codes distributed by admins for bonus tokens.
Watching on Twitch
Linking your account
Open the Kana Cards panel on the league's Twitch stream and link your account: go to Profile → Generate Twitch Code, then enter the 6-character code in the Twitch panel. The code expires after 10 minutes.
Once linked, your token balance is shown in the panel, and watching a linked stream makes you eligible for a token drop whenever the broadcaster confirms a match MVP.
Looking to broadcast instead of watch? See the Streamers subtab above.
Scoring & Modifiers
Fantasy points are calculated per match from raw in-game stats. Most stats are multiplied by a weight and summed. Deaths use a survival bonus pool: you start with a fixed point reward for surviving, reduced by a set amount per death — never going below zero.
Stat Weights
Stat
Points per unit
—
Rarity Bonus
Flat multiplier applied to a card's total score.
Rarity
Bonus
—
Card Modifiers
Modifiers are assigned at draw time and each boost one scoring stat's contribution.
Rarity
Modifiers
—
The confirmed match MVP (see the Streamers subtab) also receives a bonus on their fantasy score for that specific match, applied retroactively and reflected in all leaderboards and roster totals. Current MVP bonus: —.
Weights are configured by administrators and may be adjusted between seasons. The values above are live — they update whenever an admin changes the weights.
Linking Your Dota 2 Profile
If you're a league player, you don't need a Fantasy account at all for your real match performance to count — every card featuring you scores points for whoever holds it, based purely on your in-game stats each week. Creating an account and linking your Dota 2 profile is entirely optional, and only affects how your own tags are displayed.
How to link
Register a Fantasy account (or log into an existing one), then open the Profile tab.
Enter your Dota 2 (OpenDota) player ID in the linking field. This self-reported ID connects your user account to the Card records that represent you.
Linking is optional and can be changed or removed at any time from the Profile tab.
What linking unlocks
If admins have granted you tags (e.g. a caster or player-of-note tag), linking your player ID makes those tags appear as sticker badges composited onto your cards and as chips next to your name on the leaderboard.
The Profile tab shows a Your Tags section so you can see what's granted, and hints if you have tags but haven't linked your ID yet.
Without linking, any tags you've been granted exist but won't be visually attached to your cards or leaderboard entry.
Applying & Installing
Applying (Local Test status)
While the Kana Cards extension is still in Twitch's Local Test status (pre-public-release), Twitch requires each broadcaster's channel to be individually whitelisted. Contact a Kana Cards developer for a test install link to get your channel added.
Once the extension has passed Twitch review and is publicly released, this step is no longer needed — any broadcaster can install it directly from the Twitch Extension Manager.
Installing
Add the Kana Cards extension to your channel from the Twitch Extension Manager (or via the test install link while in Local Test status).
No URL configuration is required on your side — the backend connection is pre-configured globally by the developer and applies automatically to every install.
Once installed, a Quick Actions panel appears automatically in your Twitch Stream Manager's Live Config view.
Selecting a Match MVP
Using Quick Actions
After a match, open Quick Actions (Live Config view) in Twitch Stream Manager and click Select match MVP.
Select the series (team vs team) → the specific match (Match 1, Match 2…) → the MVP player, then confirm.
What confirming does
An automatic, one-time token drop fires to eligible linked viewers watching your stream — re-confirming a different MVP for the same match does not re-drop tokens.
The confirmed MVP receives a configurable fantasy score bonus applied to their score for that specific match, reflected in all leaderboards and roster totals.
Design Decisions
A high-level look at a few notable architecture choices behind Kana Cards. For full depth, see the links at the bottom of this panel rather than the summaries below.
Dynamic per-draw card generation — cards are generated at draw time (rarity rolled from configurable weights, player chosen with a proportionality bias) instead of being pulled from a shared pre-built static pool.
SQLite with a deploy-time safety net — SQLite is used instead of a heavier database engine, paired with a versioned migration registry and a pre-deploy backup script so schema changes and deploys can't silently corrupt or lose data.
Admin-driven season lifecycle — ending a season, archiving standings, and starting the next one are all admin actions (season end/reset endpoints, manual week creation) rather than being controlled by env-var season boundaries requiring a redeploy.
Demo Mode for the season lifecycle — an env-gated (DEMO_MODE=true) clock override and disposable account seeder lets the entire pre-lock → lock → scored arc be demonstrated on demand, structurally absent in production.
Generic tag system decoupled from linking — admin-granted tags (stickers/leaderboard chips) are a separate concern from Dota 2 profile linking; a new tag needs only a database row and an image asset, and tags persist even before a player links their profile.
Define tag types. Grant them to users via User Management above.
Key
Label
—
Promo Codes
Code
Tokens
Uses
—
Scoring Weights
Stat
Weight
—
Notifications
Broadcast a one-time message to all logged-in players during the active window.
Message
Start
End
Seen
—
Token Grant Events
All logged-in players claim tokens automatically during the active window.
Tokens
Start
End
Claims
—
Refresh Schedule Cache
Busts the in-memory cache and re-fetches from the Google Sheet.
Recalculate Fantasy Points
Applies current weights to all stored match stats.
Re-enrich Player Profiles
Fetches hero stats and ban data for all players, then regenerates AI bios if ANTHROPIC_API_KEY is set.
Season Lifecycle
Archive final standings before resetting for the next season. Standings are
computed live and are destroyed by reset — always run End Season first.
Deletes matches, weeks, stats, the Player Pool, and all cards — retains users, tags, archives
Season
Archived
Users
—
Matches
Match
League
Team 1
Team 2
Start Time
MVP
Action
—
Set MVP
Loading…
RESET SEASON
This deletes all matches, player stats, weeks, Twitch MVP/token-drop records, the
entire Player Pool (players and teams), and every user's cards. Tokens are reset and
leagues unmonitored. User accounts, tags, audit logs, and season archives are kept.
Make sure you have already archived this season's standings — reset destroys the
live leaderboard data. Users will need to draw new cards and you will need to
re-add players via Player Management afterward.