Project Vyn is a Vite + React application backed by Supabase and Stellar/Soroban contract calls.
- Copy
.env.exampleto.env.local. - Fill in the variables described below.
- Install dependencies with
npm install. - Start the app with
npm run dev.
Use this flow if you are a new contributor and want to reproduce the app on your machine:
- Clone the repository.
- Copy
.env.exampleto.env.local. - Fill in the environment variables with your own values or with the team-provided testnet values.
- Run
npm installin the repo root. - Start the frontend with
npm run dev. - If you need to verify backend behavior locally, run
node backend/server.jsfrom thebackend/folder in a separate terminal.
- A Supabase project or access to the shared test project.
- A Stellar testnet admin account for
SECRET_KEY_ADMINandPUBLIC_KEY_ADMIN. - The deployed Soroban contract IDs for
NFT_CONTRACT_IDandVITE_LENDING_CONTRACT_ID.
If you do not have those values yet, you can still read the code and work on UI or docs changes, but wallet, scoring, and minting flows will not work end to end.
The project uses the following variables:
VITE_SUPABASE_PROJECT_IDVITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEYPUBLIC_KEY_ADMINSECRET_KEY_ADMINNFT_CONTRACT_IDVITE_LENDING_CONTRACT_IDPORT
VERCEL_OIDC_TOKEN is created by Vercel for deployment workflows and is not required for normal local development.
- Open your project in the Supabase dashboard.
- Go to Project Settings > General and copy the Project ID for
VITE_SUPABASE_PROJECT_ID. - Go to Project Settings > API.
- Copy the Project URL into
VITE_SUPABASE_URL. - Copy the
anon/ publishable key intoVITE_SUPABASE_PUBLISHABLE_KEY.
- Create or reuse a dedicated Stellar testnet account for backend operations.
- Copy the account secret into
SECRET_KEY_ADMIN. - Derive the matching public key from that account and place it in
PUBLIC_KEY_ADMIN. - Keep the secret out of version control. Use
.env.localonly.
- Deploy the NFT contract to Soroban testnet.
- Copy the contract ID from the deployment output into
NFT_CONTRACT_ID. - Deploy the lending contract to Soroban testnet.
- Copy that contract ID into
VITE_LENDING_CONTRACT_ID. - If you redeploy either contract, update the value in
.env.local.
- Use
PORT=3000if you need a predictable local port. - If your environment already uses another port, you can change it.
Vyn has four layers: a React frontend, Vercel serverless API functions, Supabase for auth and profiles, and three Soroban smart contracts on Stellar Testnet.
- Architecture overview — layers, components, contracts, and where to make common changes.
- Core flows — step-by-step walkthroughs of auth, deposit, scoring/minting, credit, and loan flows.
- Do not commit
.env.local. - Use
.env.exampleas the reference for required variables. PUBLIC_KEY_ADMINandSECRET_KEY_ADMINmust belong to the same account.- Contract IDs are environment-specific and may change after redeployments.