SEICHO
Strategic Market Research
Technical referenceBase Mainnet · 8453

Architecture

System boundaries

SEICHO combines a Next.js client, a session backend and a set of non-proxy contracts on Base. Authentication and payments are separate flows with separate authorization models.

System overview

ClientUser wallet + SEICHO frontend

Connects the wallet, requests signatures and submits explicit transactions.

ApplicationSEICHO backend

Issues nonces, verifies signatures, reads access and creates bounded sessions.

SettlementSEICHO contracts

Store account and access state, collect approved payments and apply renewal rules.

NetworkBase Mainnet

Chain ID 8453. Production contract state and payment events are publicly readable.

The frontend never receives the wallet private key. It asks the wallet provider to sign a human-readable authentication message or to submit a specific contract call. The backend independently verifies the login signature and reads contract state over an RPC endpoint.

Trust boundaries

Wallet boundary
The wallet displays and authorizes signatures and transactions.
Backend boundary
The backend controls application sessions and protected content access.
Contract boundary
Base contracts enforce payment, allowance use and subscription state.
Operator boundary
The current contract owner retains the documented administrative powers.

Subscription lifecycle

  1. The frontend reads accepted payment tokens and current pricing.
  2. The user chooses tier, duration, token and optional auto-renewal.
  3. If allowance is insufficient, the user submits an ERC-20 approval.
  4. The user separately submits the account/subscription transaction.
  5. The core recomputes price, enforces a user-supplied maximum and pulls the exact amount.
  6. The backend later reads effective access from the deployed contracts.

Data and custody

Subscription and account ownership state is on-chain. Research content, user sessions, trusted-device records and application data are handled by the backend. Payment tokens remain in the user wallet until an authorized contract path calls transferFrom.

The core temporarily receives subscription payments and distributes configured commissions and treasury amounts. It does not custody the user's wallet and cannot sign on the user's behalf.