Wallets
Sign in with a Solana wallet or an EVM wallet (RainbowKit). Pay in SOL or USDC.
You can sign in with either kind of wallet. Either one becomes your account: it opens packs, holds the desks you win, launches and trades coins, and gets airdrops.
| Solana wallet | EVM wallet (RainbowKit + wagmi) | |
|---|---|---|
| Wallets | Phantom, Solflare, Backpack and any Wallet Standard wallet. A demo wallet in this build. | MetaMask, Rabby, Coinbase Wallet, Phantom, Rainbow, Brave, WalletConnect wallets and any browser wallet. |
| Sign in with | A short Solana message (ed25519) | "Sign in with Ethereum" (EIP-4361) |
| Packs are paid in | SOL, or USDC from a linked EVM wallet | USDC from the same wallet |
| Networks | Solana devnet on the preview, mainnet at launch | Base (default) or Ethereum |
| Connect from | Connect wallet → a Solana wallet | Connect wallet → Ethereum and Base |
Signing in
Connecting a wallet isn't enough to open packs: you also sign a short message. It proves the wallet is yours. It isn't a transaction and costs nothing.
- Solana: pick your wallet in the connect window, then press Sign message. The demo wallet signs by itself.
- EVM: choose Ethereum and Base. RainbowKit connects your wallet and asks it to sign a standard "Sign in with Ethereum" message. Smart wallets (Coinbase Smart Wallet, Safe) work too; the server checks their signature on chain.
Both messages start with this site's address and say Sign in to xCanopy. Don't sign one that names a different site. A sign-in message is good for 10 minutes, and once signed you stay signed in for 7 days.
"Sign-in isn't enabled for this address"
Sign-in only works from the addresses the site is set up for. If you see this, open the site at the address the message suggests.
Paying in USDC
Signed in with an EVM wallet? Packs are always paid in USDC from that wallet.
Signed in with Solana? You can still pay in USDC:
- Sign in with your Solana wallet.
- On a pack, choose USDC under Pay with and press Connect EVM wallet. The connect window is RainbowKit.
- Press Open pack. Your EVM wallet asks you to sign one payment authorization for that click, however many packs you're opening. It names the pack and how many, the amount in USDC, the network and the Solana wallet that gets the desks. If your wallet is on another network, it's asked to switch to Base first.
- The server checks the signature comes from that EVM address on Base or Ethereum, and that it names this pack and your signed-in wallet. Then it draws your desks.
With a Solana account the desk goes to your Solana wallet, never to the EVM address. With an EVM account the desk is held for that account. OTC Desks are Solana NFTs, so withdrawing one will need a Solana address once live transfers arrive. Either way, the receipt shows which EVM wallet paid and on which network.
USDC is coming soon
Paying in USDC is only offered where payments are simulated, until the server verifies USDC payments. On the preview, pay in devnet SOL from a Solana wallet. Where it is offered, the EVM wallet only signs. No USDC moves and you're never asked to approve a token transfer. If a site ever asks you to approve an unlimited USDC allowance for a pack, don't.
The wallet menu
Open it from your wallet in the top bar:
- My collection opens your profile.
- Copy address, and View on Solscan, Etherscan or Basescan.
- Connect EVM wallet to pay in USDC (Solana accounts), or your linked EVM wallet (USDC).
- Switch wallet signs you out and opens the connect window.
- Wallet and network (EVM accounts) opens RainbowKit, where you can change network or disconnect, which also signs you out.
- Sign out.