LearnHNS Market

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

  1. Browse listings on LearnHNS Market or inside Bob Wallet's Exchange marketplace.
  2. Open a listing to inspect the name, price, seller address, and proof JSON.
  3. Use Bob LearnHNS to buy from LearnHNS Market.
  4. If Bob is in SPV mode, Bob asks LearnHNS Market for the listing coin data it cannot get locally.
  5. 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.

Test/regtest proof JSON should never be used with production Bob Wallet.

For Sellers

  1. Create a Shakedex proof for a name you own.
  2. Upload the proof JSON on the upload page.
  3. The market validates the proof and creates a public listing.
  4. 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.

Use only a low-value name you are willing to sell. A valid proof is a real sell offer.
  1. 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')"
  2. 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
  3. Back up the entire Shakedex test folder after the transfer starts:
    ~/.shakedex-learnhns-mainnet-test
  4. 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
  5. 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 2c4fa04 or newer. Fixed-price proofs should be immediately buyable: the bid lockTime is current chain time, while listing visibility is stored separately as expiresAt.

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>.