What it covers
-
01
Account and SSO
The account console is the identity hub: sign-in, register, and a home that lists available services. A shared cookie carries the session into the lending console so the user is not asked again.
Account sign-in for the central console. Brand names are blurred.
Account home: session status and service cards for lending and copy-trade. Brand names are blurred. -
02
Funding automation
The lending console stores exchange API credentials once, then exposes symbol, max amount, conservative / moderate / aggressive modes and a high-rate mode. Start and stop sit on the same page as the credential test.
Lending console sign-in. The session can arrive from the account cookie. Brand names are blurred.
Lending desk: API credentials, strategy mode and start/stop. Brand names are blurred.
Lending settings: symbol, max amount and conservative / moderate / aggressive. Brand names are blurred. -
03
Interest overview
Wallet assets, a live rate and interest income share one screen with a 24-hour history once credentials are valid. The published frame is an empty configuration state from the product manual.
Interest overview: wallet assets, live rate and 24-hour history. Empty until credentials are set. Brand names are blurred.
The problem
Account, lending automation and subscriptions sat in separate systems. Users signed in more than once. Operators could not see lending settings, interest and account status on one path.
How it was built
The workspace is a monorepo. The account hub is a Next.js app on PostgreSQL with a shared JWT cookie for SSO. The lending console is a React app with an Express API, MongoDB and Redis, talking to the exchange API for funding offers. A separate engine listens to funding trades and posts offers. An ops dashboard watches hosts and can write a daily report.
What changed
Users sign in once at the account console and open the lending console from there. Lending settings, start/stop and interest sit in one app. Subscriptions and host health have a single operator path.