Skip to content

Platform (Frontend)

arkonix-platform is a pnpm monorepo of Next.js applications sharing a common design system and API layer.

Applications

App Purpose Where
Earn Public depositor app: vault listings, vault detail, deposits/withdrawals, portfolio, compare arkonix.xyz
Partner portal Partner & platform operations: share-class dashboards, deposit/redeem queues, governance, risk controls, team management partner.arkonix.xyz
Web Marketing site, brand system, Shariah-compliance information —

All three are Next.js App Router applications (React 19, TypeScript, Tailwind CSS) with class-based dark mode. The Earn app and partner portal add the DeFi stack: wagmi + viem for on-chain access, TanStack Query for server state, and the Vault SDK for vault flows — the platform's own frontend consumes the same public SDK that partners do.

Shared packages

The monorepo extracts cross-app concerns into workspace packages:

  • Brand — design tokens (color, typography, spacing) and a Tailwind preset. Typography: Inter for headings, DM Sans for body, IBM Plex Mono for numerics — the same system these docs use.
  • UI — a Radix-based component library (dialogs, tables, forms, theming) shared by all apps.
  • Icons — custom icon set.
  • API client — typed REST client used by the Earn app.

Authentication & roles

Sign-in supports email and wallet via an embedded auth provider issuing JWTs; wallet sign-in uses SIWE (EIP-4361). The backend derives the user's memberships and role, which the frontend mirrors as a role/permission model:

Role Scope
Super admin / platform admin Platform-wide operations
Partner admin Full management of their organization
Partner strategist Vault viewing, order placement, portfolio
Partner investor Vault viewing, portfolio

Navigation, pages, and individual actions are gated by permissions (e.g. vaults:configure, orders:place), enforced server-side and reflected client-side.

On-chain layer

  • Networks: Ethereum Mainnet, Arbitrum One, BNB Smart Chain, and HyperEVM in the apps today (SDK support is a superset — see SDK Configuration).
  • Amount handling: all token amounts are bigint end-to-end, converted only at display edges with on-chain-resolved decimals; valuations go through the vault's own conversion functions rather than local share-price math.
  • User state: positions and pending/claimable request states are read directly from vault contracts via batched multicalls on a 10–15 s cadence.

Vault detail & data

Vault pages combine three sources, consistent with what integrators get:

  1. On-chain reads — metadata, user position, request states.
  2. Public API — financials, return/TVL history, holdings, fees.
  3. The Vault SDK — the deposit/redeem/cancel transaction lifecycle.

Deployment model

The depositor-facing apps deploy continuously through a CDN-backed hosting platform; the partner portal ships as a container to Kubernetes with health-probed rolling updates and autoscaling in production. Production releases of the portal are cut from version tags.