Free Node activation
Node ownership is derived from the authenticated wallet session when /api/nodes/register is called.
Tenzarch uses wallet ownership to create a session for account-specific actions such as Free Node activation, credit purchases, AI Agent launches, and personal execution history.
The frontend asks the selected wallet to sign an authentication message. The backend verifies that signature and issues a wallet session token. Tenzarch should never ask users for private keys, recovery phrases, or exported wallet credentials.
Node ownership is derived from the authenticated wallet session when /api/nodes/register is called.
Launching an Agent can require wallet authentication and Execution Credits because it creates network workload demand.
Credit balance and purchase history are wallet-linked account data.
Wallet-specific execution and node state should only be shown after authentication.
If multiple wallet providers are available, the user should choose the wallet explicitly. If no compatible wallet is available, the UI should show a clear install-wallet state instead of a dead-end connection error.
After wallet authentication succeeds, frontend surfaces can request protected backend state for the connected wallet. This includes wallet-owned nodes, credit balance, execution history, node rewards, and actions that create workload demand. The wallet address is not enough by itself; protected actions should be backed by the verified wallet session.
On page load, the frontend can restore a valid wallet session and refresh account-specific state.
Pages that depend on identity should load only after a session token is present.
Expired or missing sessions should return users to a clear connect-wallet state.
Disconnecting should clear local wallet session state and remove account-specific UI data.
Modern browsers can expose multiple EVM wallets at once. A production wallet flow should not assume every injected provider is MetaMask, and it should not automatically choose a wallet when several compatible providers are available. Users should see a clear wallet-selection interface and choose the provider they want to use for the session.
The product can connect directly or show a single available provider clearly.
Show a selection surface with distinct wallet names, icons, connection state, and recovery paths.
Show an install-wallet state instead of a generic connection error.
Keep the interface usable and let the user retry or choose another wallet.