MTG Copilot Docs
Your data

Profile and account

The two rows created when you sign up, which fields are public, where avatars are stored, and how the credit balance moves.

Signing up creates two rows keyed to your Supabase auth user id: one in users for the account, one in profiles for how you appear. Both are written by a database trigger on the auth table at the moment the account is created, so a signed-up account always has both.

Your password and OAuth identity are held by Supabase Auth and never copied into either table.

users

The account row. Only you can read it, and only you can update it.

ColumnWhat it holds
emailCopied from the auth record at signup.
usernameThe username you gave at signup, or the part of your email before the @.
credits_usdYour AI credit balance. New accounts start at $5.00.
created_at, updated_atTimestamps.

api_key, tokens_used, favorite_colors, playstyle and experience_level are older columns that nothing in the app writes today.

The balance only moves through two database functions, deduct_credits after an AI action and credit_balance after a Stripe purchase or a refund. Neither the browser nor a server action writes credits_usd directly. Every movement leaves a matching row in token_usage, described on the conversations page.

profiles

How you appear in the app.

ColumnWhat it holds
display_nameUp to 50 characters, and unique across accounts.
bioUp to 280 characters.
avatar_url, avatar_typeYour avatar, and where it came from.
themelight, dark or system.
favorite_colorsAny of W, U, B, R and G.
favorite_card_idsUp to five cards.
created_at, updated_atTimestamps.

avatar_type records which of five paths produced the current avatar: upload for a file you uploaded, card for a card's art, preset for one of the built-in images, oauth for the picture your Google or Discord account came with, and default when you have none.

Uploads and card art go into the avatars storage bucket under a folder named with your user id, and are served from a public URL. Presets are static files already in the app, so choosing one stores a path and uploads nothing.

What other people can see

profiles carries a policy that grants read access to everyone. Explore uses it: a public deck is listed with its author's display name, which it reads from the deck owner's profile row. The policy covers the whole row rather than the display fields, so treat everything in the table above as public. Your bio, your chosen theme, and your favorite cards and colors are all readable by anyone who can query the table.

Your email sits on users, which no one but you can read.

Deleting your data

Removing a card from a deck or from your collection deletes the row. The deck keeps a history entry recording the removal, described on the decks page.

Deleting a whole deck, a conversation, or the account itself has no self-serve path today, so any of those means asking us to do it.

On this page