Run locally¶
Prerequisites¶
- Node 20.9+ (Next.js 16 requirement) and Yarn 1.22+. The repo pins Yarn via
packageManager;corepack enablesets it up. - A privacy-enabled Starknet wallet with Wallet API
>= 0.10.3: browser extension for desktop, or the wallet's in-app browser on phone. - An Alchemy Starknet API key.
- Optional: Upstash Redis credentials for a shared catalog.
- Optional: Scarb, only if you want to rebuild the Cairo helper.
App¶
git clone https://github.com/JaDi03/GhostDeal.git
cd GhostDeal
yarn install
cp .env.example .env.local
Fill .env.local.
| Variable | Role |
|---|---|
NEXT_PUBLIC_PROVIDER_URL |
Alchemy Starknet API key only (the URL prefix is already in src/utils/constants.ts) |
NEXT_PUBLIC_GHOSTDEAL_ESCROW_MAINNET |
Optional. Falls back to the live mainnet helper in src/utils/constants.ts |
NEXT_PUBLIC_GHOSTDEAL_ESCROW_SEPOLIA |
Optional. Falls back to the live Sepolia helper in src/utils/constants.ts |
NEXT_PUBLIC_WC_PROJECT_ID |
Optional Reown / WalletConnect project id for the mobile connector |
UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN |
Required for a public marketplace. Without them, listings stay in this browser |
Open http://localhost:3000. Connect a privacy-enabled wallet on Mainnet or Sepolia.
- Desktop: Chrome + wallet extension. The picker uses get-starknet discovery.
- Phone: open the PWA inside the wallet's in-app browser. A normal mobile browser has no injected wallet.
Wallet API must be >= 0.10.3 before Pay. The app refuses a fake public Pay if the wallet is below that.
If you change the Cairo helper: