Features
Everything OpenRift does
Your collection, your decks, and your game nights, in one app.
- Fast
- Free
- No ads
- Open source
Coming from another app? Importing your collection takes a minute.
Want it on your phone? Add OpenRift to your home screen.
Collect
Browse the catalog, scan cards, and track your collection.
All the cards, easy to browse
OpenRift aims to have all cards and promos catalogued in all available languages. Currently that means English, Chinese, French, and Korean printings and around 800 promos. We have exhaustive filtering and sorting options, so you can easily find the cards you're looking for.
Open the catalogImport from anywhere, export anytime
Moving in from another tool, or just want to try things out? You can start your OpenRift collection by pasting a plain text list or uploading a CSV from Piltover Archive, RiftCore, or RiftMana. Nothing to convert, nothing to retype. If you ever want to leave, you can export your collection back to those formats (and more).
Import nowScan cards with your phone
Point your camera at a card and it appears in a list on your device, with its price and whether you own it already. One button adds the whole list to a collection when you are done. The scanner works offline, is not fooled easily by bad lighting, and takes less than a second to recognize cards on modern phones. Works with desktop webcams as well. No usage limits and completely free.
Open the scanner3 cards1 new
4 cards2 new
- New
- 2 owned
- New
- 1 owned
Unlimited collections, organized your way
Create as many as you like: binders, storage drawers, shoe boxes, deck boxes. View them separately, or all together. Never lose track of where you put that card again.
Open collectionsLists that maintain themselves
Fill a list by hand, by rule, or both. A rule is the card browser's entire filter language pointed at a list, and every dimension can exclude as well as include. A rule could be "A playset of every Origins printing I'm still missing, in English, no metal printings". Lists can combine multiple rules as well. Tradelists run the same machinery in reverse, e.g. "Keep three of each card and offer the surplus."
Open your listsAutomatically want every card that matches these filters.
- Playful Phantom1Full Playset
- Hidden Blade2
- Legion Rearguard3
- Solari Shieldbearer3
Three marketplaces, side by side
Daily prices from TCGplayer, Cardmarket, and CardTrader on every printing, with history charts showing where a card has been heading. Your collection's total value is tracked over time too, for any marketplace and any set of your collections.
Open the catalog
CardTrader€3.65
TCGplayer$4.52
Cardmarket€3.80Every promo stamp, every source
Stamps like Promo, Judge and Prerelease are tracked per printing. Where the card was handed out is a separate axis, a channel tree four levels deep. You can group the page by either.


Build
Draft a deck, try variants, and test hands before you sleeve up.
Deck building, strict or freeform
Legality checked against the official rules as you build, or switched off entirely. Energy curves, matchup plans, and deck codes that other tools can read.
Build a deck- 3×Defy
13/3 - 3×Soul Sword13/3
- 3×Hidden Blade
23/3 - 1×2×Guards!31/11/2
- 1×Vi, Peacekeeper
51/1
One deck, many variants
Fork a deck to try a change without losing the build that works. Each variant sits on a small graph showing what you added and what you cut.
Test a deck before you sleeve it
Deal sample opening hands and try the mulligan. The odds table gives every card's chance of landing in the opening four, and anywhere in your first seven.
| Card | Hand | First 7 |
|---|---|---|
| Turn-1 unit going first (≤2 energy) · 9 | 67% | 87% |
| 3× Soul Sword | 28% | 46% |
| 3× Guards! | 28% | 46% |
| 2× Hidden Blade | 20% | 33% |
Chance of at least one copy in your opening hand, and anywhere in your first 7 cards.
From decklist to deck box
Link a deck to the box you keep it in, then tick each card off as it goes in. Missing and surplus are counted for you, and each row names which copy to pull and which collection it's sitting in.
SFD-154Guards!
OGN-213Hidden Blade
SFD-049Aphelios, Exaltednot owned
SFD-177a
SFD-177Azir, SovereignShowcaseBulk boxBinder+2Take this copy instead
Binder
SFD-177Bulk box
SFD-177aShowcase×2Play
Run tournaments, look up rulings, keep score.
From pod night to store event
Swiss pairings for 1v1, pods for three or four players, and fixed teams for 2v2. Deck submission, judges, and deck checks are optional per tournament. Players report their own results from a link, and spectators can follow the standings.
Open tournamentsThe rules, down to the paragraph
Every core and tournament rule, filtered as you type. Game terms and cross-references are jump links, so you land on the exact ruling instead of scrolling a PDF. Older versions stay online with the changes since the last one marked up.
Keep score at the table
Track points and XP in 1v1, 2v2 and FFA games, on one phone.
Community
Trade with your playgroup, track what you lend, and take it all into Discord.
Trade inside your playgroup
Start a private group for your store crew or your kitchen table. Each group's card sums up what's waiting inside: trades you could make, requests waiting on your answer, and swaps left to confirm. A group can also hold shared collections: a bulk box of spares anyone can take from, or the one collection you and a partner keep together.
Open your groupsIt starts with a match
Your wishlist meets everyone's tradelists, across the lists people have shared with the group. The group's band leads with the cards you could pick up, so you see the opportunity before you go looking for it.
Open your groupsAsk for the one you want
Every suggestion says whose copy it is, what condition it is in, and which of your lists asked for it. One press sends the request, and they have a week to answer before it lapses on its own.
Open your tradesRequests expire after a week if nobody answers.
They accept, the copy is held
An accepted trade reserves that exact copy. It stops counting for their decks and drops out of everyone else's suggestions, so two people are never promised the same card.
Open your tradesA reserved copy stops counting for their decks, so nobody else is promised it.
Swap at the table, confirm in the app
You meet up and trade the cards. Then each of you confirms your own half: theirs takes the copy out of their collection, yours puts it into whichever collection you pick. Neither side can log the swap on the other's behalf.
Open your tradesEach side confirms its own half. Neither can log the swap for the other.
It lands in your collection
The copy is yours, gone from theirs, and off your wishlist. Your decks can use it straight away, and the group's traded count moves. Nothing else in OpenRift spans two people and two collections.
Open your collectionsKnow where your cards are
Lend cards to a friend and OpenRift remembers who has them. A lent copy stays in your collection but stops counting for decks and trades until you mark it returned.
Lent out
A bot for your Discord server
Type [[card name]] and the bot replies with the art, a link, and prices from TCGplayer, Cardmarket, and CardTrader. Link the server to your group and it also says who has the card on their tradelist. Slash commands unfurl deck codes and look up rulings.
[[Jinx, Rebel]]
Create
Put cards on stream, rank them, or design your own.
Put cards on stream
Queue up cards and show them two ways: a full-screen view for window capture, or a transparent overlay you paste into OBS as a browser source. Both run off the same queue, and the show is driven from the keyboard, so you can step through a reveal without looking away from the camera.
Open the StageAdd a Browser source in OBS and paste this URL. Anyone with the link sees what you push.
Rank a set on a board
Drag cards out of the catalog onto a board and stack them into rows you name yourself, adding and reordering tiers as the argument develops. Share the finished board as a link, download it as an image for a thumbnail, or open it on the Stage and fill it in live while chat weighs in.
Open the tier list makerCard lookups in chat
Paste one line into Nightbot, StreamElements, or Fossabot and viewers can look up any card without leaving chat. The reply carries the stats and a link, and a name that matches nothing comes back as a search instead of an error.
riftcaptain: that top end is nuts
mothbite: wait what does viktor even do
mothbite: !card viktor innovator
NightbotBOT: Viktor, Innovator — Champion Unit · Mind · Energy 4 · Might 3 · Power 1 — openrift.app/cards/viktor-innovator
Works the same in StreamElements and Fossabot. A name that matches nothing comes back as a search link, so a typo still lands somewhere useful.
Design your own cards
Fill in the name, type, domains, stats, and rules text, add your own art, and the card renders as you type. Download it as a PNG or copy it straight to the clipboard.
Fast. Free. No ads. Open source.
OpenRift is built by one person, with help welcome. The code is on GitHub.
The interface is available in English, Deutsch, Français, 简体中文, 繁體中文, and 한국어. Switch any time from the menu in the header.
OpenRift on GitHub