UnitFlow LogoUnitFlow Docs

Onboarding Flow

The landing page guides new users through a four-step onboarding process before they can access the DEX. All progress is tracked on-chain via NFT mints — there is no points database.

Steps

1

Connect Wallet

Connect a MetaMask or WalletConnect-compatible wallet. The app must be connected to Arc Testnet (Chain ID: 5042002).

2

Discord Verification

Authenticate with Discord via OAuth2. The app verifies that your Discord account is a member of the UnitFlow server (discord.gg/BkmmetAwvg). Requires scopes: identify, guilds.

3

X (Twitter) Verification

Authenticate with X via OAuth2. The app verifies that your X account follows @unitflowFinance. Requires permissions: tweet.read, users.read, follows.read.

4

Mint Genesis NFT

After both verifications, mint your Genesis Pass NFT. This is a one-time mint per wallet. The Genesis NFT marks you as a verified community member.

5

Earn Activity NFTs

Post on X mentioning "unitflow" or "unitflowFinance", paste the tweet URL into the verification field, and mint an Activity NFT. Repeatable once per day.

Verification State

Verification state is loaded from two sources on wallet connection:

  • Blockchain — NFT ownership is read directly from the contract. Holding a Genesis NFT implies both Discord and X verifications were completed.
  • Server — OAuth verification status (Discord/X) is stored server-side and fetched via API on load.

OAuth Endpoints

ProviderCallback Route
Discord/api/auth/discord
X (Twitter)/api/auth/twitter

Optional Database

The landing page optionally integrates with Supabase to persist verification records. If configured, a verifications table stores wallet address, Discord ID, Twitter ID, and verification timestamps. This is not required — the app falls back to blockchain state if no database is configured.

NFT Contract (Landing Page)

FieldValue
ContractunitflowNFT (ERC-721)
Address0x9e05C6075f9E890fC515EF86091414C77036f8FA
NetworkArc Testnet
Token NameUnitFlow NFT
Token SymbolARCNFT