Do not commit secrets. Complete these in order; credential rotation is blocking.
- Canonical:
BASE_SEPOLIA_RPC(used by Hardhat, contract scripts, and Nest aftermain.tsresolves it). - Alias:
BASE_SEPOLIA_RPC_URLis also read by the backend ifBASE_SEPOLIA_RPCis empty (rpc.util.ts).
-
early.surge.xyz - Register the project for prize eligibility (use organizer-provided access only; never paste passwords into the repo).
-
lablab.ai - Confirm team / project exists for submission.
-
Rotate any API key that appeared in chat exports or logs: Kraken, Gemini, PRISM, Alchemy, Pinata, WalletConnect, etc.
-
Kraken read-only key - For leaderboard verification if required: Query Funds + Query Open Orders & Trades only.
-
.env- Refresh keys; restart backend; smoke-test PRISM and Gemini. -
ERC-8004 registry - From repo root:
cd contracts && npm run verify:erc8004-registry
Set
ERC8004_IDENTITY_REGISTRY(and reputation registry if docs specify a pair) to addresses with bytecode on Base Sepolia.
- Fund deployer and agent on Base Sepolia.
npx hardhat run scripts/deploy-base-sepolia.ts --network base-sepolia- Copy addresses into root
.env; restart backend. - Host agent card: Pinata (
npm run upload:agent-card) or raw GitHub URL toagent-card.json. - Register:
npm run register:erc8004 -- '<agentURI>'orPOST /api/identity/register. - Set
ERC8004_AGENT_IDafter registration; runnpm run post:reputation. - Shared Capital Sandbox - See CAPITAL_SANDBOX.md; integrate hackathon vault/router if required for leaderboard intents.
TRADING_LOOP_ENABLED=true(andTRADING_LOOP_INIT_PAPER=trueas needed); confirm agent on lablab leaderboard.
See SUBMISSION_PACKAGE.md for long description template and field list (video, slides, cover, GitHub, demo URL, tags).
Body must match FeedbackDto: pnlPercent, sharpeRatio, maxDrawdownBps, winRate (numbers). Example:
curl -s -X POST http://localhost:3001/api/identity/feedback \
-H "Content-Type: application/json" \
-d '{"pnlPercent":2.5,"sharpeRatio":1.2,"maxDrawdownBps":800,"winRate":50}'When the demo URL changes, push docs/agent-card.json and update the registry:
cd contracts && npm run set:agent-uri -- '<https://raw.githubusercontent.com/.../agent-card.json>'
# or: npm run set:agent-uri -- <agentId> '<uri>'- Vercel: Import GitHub repo; root directory
apps/frontend; framework Next.js; envNEXT_PUBLIC_API_URL= public backend URL (no trailing slash issues - match your API host). Optional config:apps/frontend/vercel.json. - Railway / Render / Fly: Deploy
apps/backend(or Dockerfile); set all secrets from.env.example;USE_POSTGRES=false;FRONTEND_ORIGIN=https://<your-app>.vercel.appfor CORS. Optional config:apps/backend/railway.json. - Re-run
set:agent-uriif the agent card URL changed.
cd contracts && npm run submit:hackathon-intent
# RECORD=1 npm run submit:hackathon-intent # if wallet has AGENT_ROLE on sandbox routerFrom repo root: npm run demo-recording (or bash scripts/demo-recording.sh). Also ../scripts/demo.sh.