{{ toastMessage }}
OP

OPBinder.com

Sets OP-01 to OP-17 • Deck & Storage Manager

{{ (currentUser.display_name || currentUser.username)[0] }}
{{ currentUser.display_name || currentUser.username }}
Found {{ totalCards }} cards
Rotation:
Show:
Set:
Color:
Type:
Box:
Sort:

Loading cards from inventory database...

No cards match your current filters

{{ card.block_number }}
{{ card.variants.length }} Arts
{{ card.rarity === 'P' ? 'Promo' : (card.rarity || 'C') }}
{{ card.card_set_id || card.card_id }}

{{ card.card_name }}

{{ card.card_type }} Cost {{ card.card_cost }}
Total Owned: {{ card.owned_count }}
{{ card.in_storage }} ({{ card.storage_location === 'P' ? 'Promo' : card.storage_location }}) {{ card.rented_out || card.in_decks }} in Decks 0 in Decks
{{ card.owned_count }}
In: {{ card.decks_allocated.map(d => d.deck_name + ' (' + d.quantity + ')').join(', ') }}
Not in decks
Page {{ currentPage }} of {{ totalPages }} ({{ totalCards }} cards)

Saved Decks Gallery {{ savedDecks.length }} Saved

Browse your decks or create a new one. Mark decks as Built or Not Built to track cards.

No Saved Decks Yet

Build a custom deck from your inventory or paste a decklist from OPTCG Sim!

No Leader

{{ d.name }}

{{ d.leader_name || 'No Leader' }} ({{ d.leader_color }})

{{ d.total_cards }} cards
{{ currentDeck.name || 'Untitled Deck' }}
Total Cards: {{ totalDeckCardCount }} / 51 (1 Leader + 50 Main) {{ currentDeck.leader.card_name }} ({{ currentDeck.leader.card_color }}) No Leader Selected Need {{ deckStats.total_missing }} more copies 100% Owned! Ready to play!
{{ copyNotification }}

Deck Cards (Leader + Main Deck)

Ready Partial Missing
{{ currentDeck.leader.block_number }}
LEADER
Owned: {{ currentDeck.leader.owned_count }} 0 Owned (Missing)

{{ currentDeck.leader.card_name }}

{{ currentDeck.leader.card_set_id || currentDeck.leader.card_id }} {{ currentDeck.leader.card_color }}
+ Select Leader Click to choose your Deck Leader
{{ card.block_number }}
{{ card.card_cost !== null ? 'Cost ' + card.card_cost : card.card_type }}
{{ card.needed }} / {{ card.owned_count }} {{ card.owned_count }} / {{ card.needed }} (Need {{ card.missing_copies }}) 0 / {{ card.needed }} (Missing)

{{ card.card_name }}

{{ card.card_set_id || card.card_id }} {{ card.card_type }}
In {{ card.other_active_decks[0].deck_name }} ({{ card.other_active_decks[0].quantity }})
Needed:
{{ card.needed }}

This deck is currently empty

Click "Add / Browse Cards" to select cards from your inventory or paste a decklist from clipboard.

Missing Copies
{{ deckStats.total_missing }} Needed
{{ currentDeck.leader.card_name }} {{ currentDeck.leader.card_id || currentDeck.leader.set_id }} • Leader
Need 1
{{ c.card_name }} {{ c.card_id || c.card_set_id }} • Own {{ c.owned_count || 0 }}/{{ c.needed }}
Need {{ c.missing_copies }}

Complete Deck!

All cards in this decklist are in your collection.

Cost Curve Distribution

{{ cnt }}
{{ cst }}

Storage & Inventory Center

Organize physical card storage boxes, track cards allocated to active decks, identify deck shortages, and mass buy unowned cards on TCGPlayer.

Total in Built Decks {{ rentedCards.reduce((sum, c) => sum + (c.total_allocated || 0), 0) }} Physical copies in built decks
Active Deck Cards {{ rentedCards.length }} Distinct card titles in active decks
Active Built Decks {{ savedDecks.filter(d => d.is_active).length }} Decks currently assembled
Deck Conflicts {{ conflicts.length }} {{ conflicts.length > 0 ? 'Shortages across decks' : 'Zero card shortages' }}
Inventory Shortage Alert: You have {{ conflicts.length }} card(s) where built decks need more physical copies than you own!
Filter by Deck:

Scanning physical deck allocations and storage...

{{ c.block_number }}

{{ c.card_name }}

{{ c.card_id }} • {{ c.set_id === 'P' ? 'Promo' : c.set_id }} • {{ c.card_color }}

In Decks: {{ c.total_allocated }}x
In Storage: {{ c.in_storage }}x
Shortage: Need {{ c.shortage }} more copies
Currently in Decks:
{{ d.deck_name }}: {{ d.quantity }}x {{ d.is_leader ? '(Leader)' : '' }}

No Cards Currently in Built Decks

You currently have no built decks allocating physical cards, or no cards match your search. Mark any deck as "Built" in the Deck Builder to allocate your physical cards here.

Selection:
Deck:
{{ selectedMassBuyCount }} cards ({{ selectedMassBuyTotalCopies }} copies) selected

Calculating missing copies across all saved decks...

{{ c.block_number }}

{{ c.card_name }}

{{ c.card_id }} • {{ c.set_id === 'P' ? 'Promo' : c.set_id }} • {{ c.card_color }}

Owned: {{ c.owned_count }}x
Missing: {{ c.missing_count }}x
Buy Qty:
{{ getMassBuyQty(c.card_id, c.missing_count) }}
Decks: {{ d.deck_name }} ({{ d.quantity }}x)
TCGPlayer →

No Deck Shortages!

You own all physical copies required for your current decks. Want to explore cards you don't own to build new decks?

Filter Set:
Selection:
{{ selectedMassBuyCount }} cards ({{ selectedMassBuyTotalCopies }} copies) selected

Loading unowned cards catalog...

{{ c.block_number }}

{{ c.card_name }}

{{ c.card_id }} • {{ c.set_id === 'P' ? 'Promo' : c.set_id }} • {{ c.card_color }}

Status: 0 Owned
Buy Copies:
{{ getMassBuyQty(c.card_id, 1) }}
{{ c.card_type }} • Cost {{ c.card_cost !== null ? c.card_cost : '-' }} TCGPlayer →

No Unowned Cards Found

No unowned cards match your current search and set filters. Try clearing your filters or searching another set.

Page {{ unownedPage }} of {{ unownedTotalPages }} ({{ unownedTotal }} Unowned Cards)
Total Copies Owned {{ stats.total_owned }} Across all printings
Unique Cards Owned {{ stats.unique_owned }} Out of {{ stats.total_unique_db }} in database
In Storage Boxes {{ stats.in_storage }} Unallocated copies
In Built Decks {{ stats.in_decks }} In {{ stats.active_decks_count }} active decks

Collection Progress by Set

Click any set below to instantly view your owned cards in that set!

{{ s.set_id === 'P' ? 'Promo' : s.set_id }} {{ s.owned_in_set }} / {{ s.total_in_set }} Owned
{{ Math.round((s.owned_in_set / (s.total_in_set || 1)) * 100) }}% complete View Owned Cards →

Backup & Restore Collection

Export your personal inventory and decks as a JSON file, or restore from a backup.

{{ authMode === 'login' ? 'Sign In to OPBinder' : (authMode === 'register' ? 'Create Free Account' : 'Reset Password') }}

{{ authMode === 'login' ? 'Access your private collection, decks & binders' : (authMode === 'register' ? 'Track owned cards, decks & storage boxes' : 'Reset your password with your registered email') }}

or continue with email
{{ authError }}
Privacy Guarantee: We do not store your private credentials, tracking cookies, or payment info. All binder records and custom decks are strictly private to your account.
New to OPBinder? Already have an account? Remember your credentials?

Account Settings Google Account Standard Account

Edit your display name, username, or reset your password

{{ accountSuccess }}
{{ accountError }}
{{ (currentUser.display_name || currentUser.username)[0] }}

{{ currentUser.display_name || currentUser.username }}

@{{ currentUser.username }} • {{ currentUser.email }}

This name appears in your binder header and public deck sharing links.

@

Letters, numbers, and underscores only. Must be unique.

Used for signing in and password recovery.

Keep your OPBinder account secure by using a strong, unique password with at least 6 characters.
Reset your password directly using the email address associated with your OPBinder account.
Privacy Guarantee: We do not store sensitive payment details or track personal data. Your decks and binder records are strictly private.