Deployment

Production URLs

ServiceURL
Frontendsetula.vercel.app
Backendideal-alignment-production-912d.up.railway.app
ArcScan proof0xd033…b2afec

Hosting platforms

LayerPlatform
FrontendVercel
BackendRailway

Build and start commands

PlatformBuild commandStart command
Railway (backend)npm install && npm run build:webnpm run start:prod
Vercel (frontend)npm run build:landingNext.js default

Environment variables

Values are intentionally omitted.

Backend (Railway)

env
CIRCLE_API_KEY=
CIRCLE_ENTITY_SECRET=
CIRCLE_WALLET_A_ID=
CIRCLE_WALLET_A_ADDRESS=
CIRCLE_WALLET_B_ID=
CIRCLE_WALLET_B_ADDRESS=
CIRCLE_BLOCKCHAIN=ARC-TESTNET
CIRCLE_USDC_TOKEN_ID=
PAYOUT_CALLBACK_SECRET=
HOST=0.0.0.0
DATA_FILE=.setula-data.json
POLL_INTERVAL_MS=2000
POLL_TIMEOUT_MS=180000
CORS_ORIGIN=...

Frontend (Vercel)

env
DEMO_BACKEND_ORIGIN=https://ideal-alignment-production-912d.up.railway.app
i

All Circle credentials and the payout callback secret are server-side only. The Vercel frontend receives only DEMO_BACKEND_ORIGIN.

CORS configuration

The backend sets CORS headers for origins listed in CORS_ORIGIN (comma-separated):

  • http://localhost:3001 — landing page dev
  • http://localhost:4000 — backend dev
  • https://setula.vercel.app — production

The Next.js proxy makes CORS unnecessary in the normal browser flow — all requests are same-origin.

Validation evidence

The deployed environment was validated with a full golden-path run:

CheckResult
Five consecutive deployed runsAll passed: DRAFT → DELIVERED
Circle transaction statusCOMPLETE
ArcScan HTTP status200
Duplicate settlement protectionPassed (recipient delta 0)
Insufficient-balance failurePassed (SETTLEMENT_FAILED, no ArcScan link)
Invalid payout callbackRejected
Desktop QA (1440 px)No overflow, values readable
Mobile QA (390 px)No overflow, navigation adapted
Secret scanPassed — no credentials in tracked files or client assets
FieldValue
Payment referenceINV-SETULA-775E5BEC
Amount settled0.01 USDC
Transaction hash0xd033f753ccae0b55585a94a754657a6154f2a6690748b55adbdbb469e2b2afec
Receipt ID1aabd12a-26c0-4f7e-98c6-080b2c07a952
References matchYes
✓

Verdict: STABLE_DEPLOYMENT_READY. See the full validation record.