Development

Architecture

Current Architecture

House of Stake leases NEAR top-level namespace accounts as transferable NFTs. A leased name is a real NEAR account running the hos-wallet contract, with zero access keys. Ownership lives in contract state, and the owner operates the account from a wallet they already control.

The registry mints each name as a NEP-171 token and records the owner. The leased account also records its owner, so both records must agree. Authority flows through tla-registry to hos-extension to hos-wallet; the extension accepts force_transfer only from the registry.

The owner sends a transaction from an account already under their control and calls the leased wallet. The wallet checks that the caller is an enabled extension, that the lease is active, and that the account is not frozen. It then runs the requested supported action with the leased account as predecessor. Nothing signs on behalf of the leased account.

User / Renterowns the name,never holds the key
Frontend
Sign InNEAR, Google,GitHub, passkey
Search + Marketavailability, Intentsoffers, pricing
Checkoutpay with NEARor card via 1Click
My Accountsoperate, sell, renew,transfer, recovery
The HoS Backend
Authenticationsessions +wallet access
Orders + PaymentsStripe + NEAR,claimable refunds
Product servicesrental, Intents,business workflows
Indexer + Watcherchain mirror,recovery approvals
Postgres + Redisstate, orders,queues + locks
check wallet callsettle sale via Intentsmint + install wallet
Contracts
tla-registryNEP-171 collection,rent + lifecycle
registrarcreates leasedsub-accounts
hos-walletzero access keys,supported actions
hos-extensionauthority, rotation,expiry sweeps
mpc-recoveryattestation, timelock,watcher quorum
owner sends transaction
Owner Wallet
Wallet already controlledcalls the leased account,no leased-account key
execute on NEAR
NEAR Networkwallet contract executes,recipients + contracts
User / Renterowns the name,never holds the key
Frontend
Sign InNEAR, Google,GitHub, passkey
Search + Marketavailability, Intentsoffers, pricing
Checkoutpay with NEARor card via 1Click
My Accountsoperate, sell, renew,transfer, recovery
The HoS Backend
Authenticationsessions +wallet access
Orders + PaymentsStripe + NEAR,claimable refunds
Product servicesrental, Intents,business workflows
Indexer + Watcherchain mirror,recovery approvals
Postgres + Redisstate, orders,queues + locks
check wallet callsettle sale via Intentsmint + install wallet
Contracts
tla-registryNEP-171 collection,rent + lifecycle
registrarcreates leasedsub-accounts
hos-walletzero access keys,supported actions
hos-extensionauthority, rotation,expiry sweeps
mpc-recoveryattestation, timelock,watcher quorum
owner sends transaction
Owner Wallet
Wallet already controlledcalls the leased account,no leased-account key
execute on NEAR
NEAR Networkwallet contract executes,recipients + contracts

Component Responsibilities

ComponentResponsibility
FrontendSearch, rental, marketplace, account management, and recovery setup
The House of Stake backendOrders, payments, product state, recovery orchestration, and operational records
TLA registryNEP-171 names, leases, owners, pricing, treasury, and lifecycle
RegistrarCreates leased sub-accounts under the TLA root
Wallet implementation deployerPublishes the shared hos-wallet implementation
WalletHolds the account’s control set and runs supported actions with zero access keys
ExtensionAuthority for leased wallets, ownership rotation, and expiry sweeps
RecoveryVerified request, timelock, independent approval, and owner updates
Indexer and servicesMirror chain state, run product workflows, and keep recovery watcher services separate

Operation Flow

  1. The owner sends a transaction from an account named in the leased wallet’s control set.
  2. The owner’s wallet calls w_execute_extension with the exact supported actions.
  3. The leased wallet checks extension membership, caller authority, lease state, and freeze state.
  4. The actions execute with the leased account as predecessor.

The external action vocabulary contains Transfer, FunctionCall, and DeterministicStateInit. AddKey, DeleteKey, DeleteAccount, and DeployContract do not exist in the accepted action set. Native validator registration is also excluded because it requires a key.

Ownership Transfer & Recovery

Sale, direct transfer, and recovery update the owner recorded by the wallet and registry. Every live-name transfer requires the predecessor to be the current owner, so an administrator cannot move it directly. Recovery also checks that the expected owner is still current before applying the update.

Recovery requires an attestation, a timelock, and a watcher quorum approving the specific destination. If the account changes before completion, the recovery is cancelled instead of replacing the newer account state.

On this page