Documentation
LearnHNS Market Docs
LearnHNS Market is rebuilding the Shakedex-style Handshake marketplace flow for Bob Wallet. The current focus is fixed-price listings, Bob-compatible marketplace APIs, and SPV-friendly buying.
Current Status
Working
- Fixed-price Shakedex proof upload
- Public listing pages
- Bob-compatible auction API
- Hosted HSD status endpoint
- Bob SPV purchase fallback code
In Progress
- Railway HSD mainnet sync
- End-to-end mainnet Bob SPV purchase verification
- Native Bob seller flow polish
- Marketplace fee configuration
Check live infrastructure progress on the status page.
For Buyers
- Browse listings on LearnHNS Market or inside Bob Wallet's Exchange marketplace.
- Open a listing to inspect the name, price, seller address, and proof JSON.
- Use Bob LearnHNS to buy from LearnHNS Market.
- If Bob is in SPV mode, Bob asks LearnHNS Market for the listing coin data it cannot get locally.
- Buying should wait until the hosted HSD node is fully synced.
Bob Wallet compatibility
The buy flow works with Bob LearnHNS. Download Bob LearnHNS before opening market buy links.
For Sellers
- Create a Shakedex proof for a name you own.
- Upload the proof JSON on the upload page.
- The market validates the proof and creates a public listing.
- Bob Wallet can read that listing through the Bob-compatible marketplace API.
Native seller tools inside Bob Wallet are planned so sellers do not need terminal commands.
Temporary Seller CLI Flow
This is the current developer test path for a low-value mainnet name. It is intentionally being moved into Bob Wallet so normal sellers do not need to run terminal commands.
-
Confirm Shakedex can load hsd:
cd /Users/michaelmichelini/Documents/GitHub/shakedex node -e "const {NodeClient, WalletClient} = require('hsd/lib/client'); console.log('hsd client OK')" -
Transfer the name into the Shakedex lock. Replace the wallet id, API key, and name:
node src/cli/main.js \ --network main \ --prefix ~/.shakedex-learnhns-mainnet-test \ --wallet-id YOUR_BOB_WALLET_ID \ --api-key YOUR_BOB_WALLET_API_KEY \ transfer-lock YOURNAME
-
Back up the entire Shakedex test folder after the transfer starts:
~/.shakedex-learnhns-mainnet-test
-
After the Handshake transfer lockup completes, finalize the lock:
node src/cli/main.js \ --network main \ --prefix ~/.shakedex-learnhns-mainnet-test \ --wallet-id YOUR_BOB_WALLET_ID \ --api-key YOUR_BOB_WALLET_API_KEY \ finalize-lock YOURNAME
-
After the finalize transaction confirms, create the fixed-price proof:
node src/cli/main.js \ --network main \ --prefix ~/.shakedex-learnhns-mainnet-test \ --wallet-id YOUR_BOB_WALLET_ID \ --api-key YOUR_BOB_WALLET_API_KEY \ create-fixed YOURNAME 42 \ --out ~/Desktop/YOURNAME-learnhns-mainnet-proof.json
Use Shakedex commit
2c4fa04or newer. Fixed-price proofs should be immediately buyable: the bidlockTimeis current chain time, while listing visibility is stored separately asexpiresAt.
The first live test used lowercase Bob wallet id flamingo26; Bob's displayed wallet label may be uppercase while the internal wallet id is lowercase.
Bob Wallet And SPV
New Bob Wallet installs are moving toward SPV by default. SPV keeps normal wallet usage lightweight, but it does not keep the full coin database needed by Shakedex purchases.
LearnHNS SPV buying flow
Bob Wallet SPV -> LearnHNS Market -> hosted full HSD node -> listing coin data
Bob still uses the buyer's own wallet to fund and authorize the purchase. LearnHNS Market does not need the buyer's seed phrase or private keys.
API Endpoints
Bob marketplace listings
GET /api/v2/auctions
Marketplace fee policy
GET /api/v2/fee_info
Hosted HSD status
GET /api/v2/hsd/status
Listing-scoped coin lookup
GET /api/v2/listings/<name>/coin
Transaction status
GET /api/v2/tx/<txHash>/status
For HSD Node Helpers
The project benefits from a fully synced mainnet HSD node that can answer public chain-data lookups for active listings. We do not need wallet access, seeds, private keys, or custody.
- Mainnet full node, not SPV
- Prefer
--no-wallet - Backend-only API access with an API key
- Critical endpoint:
GET /coin/<txHash>/<index>
Supported HSD backend styles
raw: direct HSD HTTP API, for example/coin/<txHash>/<index>.firehsd: Fire HSD wrapper API, for example/api/v1/coin/<txHash>/<index>.