import { type AccountAssociation } from '@farcaster/miniapp-node'; /** * Application constants and configuration values. * * This file contains all the configuration constants used throughout the mini app. * These values are either sourced from environment variables or hardcoded and provide * configuration for the app's appearance, behavior, and integration settings. * * NOTE: This file is automatically updated by the init script. * Manual changes may be overwritten during project initialization. */ // --- App Configuration --- /** * The base URL of the application. * Used for generating absolute URLs for assets and API endpoints. */ export const APP_URL: string = process.env.NEXT_PUBLIC_URL!; /** * The name of the mini app as displayed to users. * Used in titles, headers, and app store listings. */ export const APP_NAME: string = 'Starter Kit'; /** * A brief description of the mini app's functionality. * Used in app store listings and metadata. */ export const APP_DESCRIPTION: string = 'A demo of the Neynar Starter Kit'; /** * The primary category for the mini app. * Used for app store categorization and discovery. */ export const APP_PRIMARY_CATEGORY: string = 'developer-tools'; /** * Tags associated with the mini app. * Used for search and discovery in app stores. */ export const APP_TAGS: string[] = ['neynar', 'starter-kit', 'demo']; // --- Asset URLs --- /** * URL for the app's icon image. * Used in app store listings and UI elements. */ export const APP_ICON_URL: string = `${APP_URL}/icon.png`; /** * URL for the app's Open Graph image. * Used for social media sharing and previews. */ export const APP_OG_IMAGE_URL: string = `${APP_URL}/api/opengraph-image`; /** * URL for the app's splash screen image. * Displayed during app loading. */ export const APP_SPLASH_URL: string = `${APP_URL}/splash.png`; /** * Background color for the splash screen. * Used as fallback when splash image is loading. */ export const APP_SPLASH_BACKGROUND_COLOR: string = "#f7f7f7"; /** * Account association for the mini app. * Used to associate the mini app with a Farcaster account. * If not provided, the mini app will be unsigned and have limited capabilities. */ export const APP_ACCOUNT_ASSOCIATION: AccountAssociation | undefined = undefined; // --- UI Configuration --- /** * Text displayed on the main action button. * Used for the primary call-to-action in the mini app. */ export const APP_BUTTON_TEXT: string = 'Launch NSK'; // --- Integration Configuration --- /** * Webhook URL for receiving events from Neynar. * * If Neynar API key and client ID are configured, uses the official * Neynar webhook endpoint. Otherwise, falls back to a local webhook * endpoint for development and testing. */ export const APP_WEBHOOK_URL: string = process.env.NEYNAR_API_KEY && process.env.NEYNAR_CLIENT_ID ? `https://api.neynar.com/f/app/${process.env.NEYNAR_CLIENT_ID}/event` : `${APP_URL}/api/webhook`; /** * Flag to enable/disable wallet functionality. * * When true, wallet-related components and features are rendered. * When false, wallet functionality is completely hidden from the UI. * Useful for mini apps that don't require wallet integration. */ export const USE_WALLET: boolean = true; /** * Flag to enable/disable analytics tracking. * * When true, usage analytics are collected and sent to Neynar. * When false, analytics collection is disabled. * Useful for privacy-conscious users or development environments. */ export const ANALYTICS_ENABLED: boolean = true; // PLEASE DO NOT UPDATE THIS export const SIGNED_KEY_REQUEST_VALIDATOR_EIP_712_DOMAIN = { name: 'Farcaster SignedKeyRequestValidator', version: '1', chainId: 10, verifyingContract: '0x00000000fc700472606ed4fa22623acf62c60553' as `0x${string}`, }; // PLEASE DO NOT UPDATE THIS export const SIGNED_KEY_REQUEST_TYPE = [ { name: 'requestFid', type: 'uint256' }, { name: 'key', type: 'bytes' }, { name: 'deadline', type: 'uint256' }, ];