A Next.js web interface for unlocking NEAR tokens from the veNEAR Alpha contracts (v.voteagora.near). Implements the complete 7-step unlock process described in the official guide.
If you locked NEAR tokens in the House of Stake (HoS) Alpha veNEAR contracts, this app helps you unlock them through a guided interface:
- View locked balances - See your locked, pending, and liquid veNEAR amounts
- Monitor staking status - Check if tokens are staked and manage staking pool operations
- Initiate unlock - Start the 91.25-day (3-month) unlock period
- Track progress - Visual progress bar and countdown timer
- Complete unlock - Finalize after the waiting period
- Transfer tokens - Move NEAR to your main account
- Browse all accounts - Public list of all locked veNEAR accounts
- Node.js
20.x - pnpm
- Docker Engine + Docker Compose v2 for container deployment
pnpm install
pnpm format:check
pnpm lint
pnpm buildThe app connects directly to NEAR mainnet RPC and requires no environment variables to run.
- Build and start the app with Docker, Docker Compose, or the standalone Node runtime.
- Verify
http://127.0.0.1:3000/healthzlocally orhttps://<your-domain>/healthzafter deployment.
Build the production image:
pnpm docker:buildRun it:
docker run --rm \
--name alpha-venear-unlock \
-p 3000:3000 \
alpha-venear-unlockSmoke check:
pnpm healthThe image uses Next.js standalone output, runs as a non-root user, and honors PORT/HOSTNAME at runtime.
Start the stack:
pnpm docker:upInspect and verify:
docker compose ps
docker compose logs -f web
pnpm healthStop it:
pnpm docker:downIf you want to run the standalone server without Docker:
pnpm build
HOSTNAME=0.0.0.0 PORT=3000 node .next/standalone/server.jsRun the app in dev mode:
pnpm devOpen http://localhost:3000.
Production-like local run:
pnpm build
pnpm startpnpm format:check
pnpm lint
pnpm build
pnpm test:simpleContract tests run against NEAR mainnet RPC to verify lockup account state:
pnpm test:simple # Non-staking accounts
pnpm test:staking # Accounts with staking pools
pnpm test:contract # All accounts
pnpm test:all # All accounts with report output| Workflow | Purpose |
|---|---|
Fmt |
Runs pnpm format:check |
Lint |
Runs pnpm lint |
Tests |
Runs pnpm test:simple (non-staking contract tests) |
Build |
Builds the app, validates docker-compose.yml, and smoke-builds the Docker image |
- How to Unlock NEAR in veNEAR Alpha Contracts - Official unlock guide
- House of Stake Contracts - Contract source code
- v.voteagora.near - veNEAR contract on NEARBlocks
- Root deployment guide:
README.md - Docker ignore:
.dockerignore - Compose stack:
docker-compose.yml - Dockerfile:
Dockerfile - Health endpoint:
src/app/healthz/route.ts - Workflow files:
.github/workflows/fmt.yml,.github/workflows/lint.yml,.github/workflows/tests.yml,.github/workflows/build.yml