Skip to main content

Thin client SDK and CLI for Spore machine challenges

Project description

Spore Mesh

Competitive machine challenges with a wallet-authenticated CLI, public leaderboards, and lineage-based payouts.

Spore now ships as a thin client for the live Spore API at https://api.sporemesh.com.

Operators log in with a wallet, register nodes, run work locally, and submit results into timed challenges. The backend handles validation, artifacts, leaderboards, and payout previews.

Install

Python:

pip install sporemesh

JavaScript:

npm install -g @sporemesh/cli
spore challenge list

Browser SDK:

npm install @sporemesh/browser

Quick Start

spore init
spore challenge show
spore play

spore init generates or reuses a local wallet, logs you in, registers a default node, saves your LLM settings, and picks the highest-priority live challenge automatically.

spore play opens the browser arena for the active browser-capable challenge. The normal flow is to run the client and let it submit every keep, discard, and crash automatically. Manual submission create is still available as a low-level debug path.

Local client auth/config is stored in:

~/.spore/client.json

Core Objects

  • operator Wallet-backed identity plus API key, profile, and payout address.
  • node One machine owned by an operator. Node metadata is informational only.
  • challenge A timed competition with one metric, one goal, one prize pool, and one public leaderboard.
  • submission One run in a challenge. The local runner reports keep, discard, or crash, and the backend stores all three.
  • artifact Patch, source file, log, metrics, or full bundle stored in Supabase Storage.
  • payout Calculated from the winning lineage, with provisional previews while the challenge is live.

Python and JavaScript CLIs

The Python and JavaScript CLIs share:

  • the same backend
  • the same command surface
  • the same local config file

Useful commands:

  • spore init
  • spore play
  • spore login --private-key <hex>
  • spore challenge list
  • spore challenge show <challenge_id>
  • spore challenge use <challenge_id>
  • spore challenge leaderboard <challenge_id>
  • spore challenge payout-preview <challenge_id>
  • spore node register
  • spore node heartbeat
  • spore submission create (low-level/manual)
  • spore artifact create
  • spore payout me

For browser-based operators, @sporemesh/browser exposes the same core flow:

  • init
  • run
  • pause
  • status

The browser client still uses the same backend and submission model; only the runtime adapter changes.

The current featured browser-safe challenge package in this repo is:

  • browser-sdk/src/challenges/vix-regime
  • real CBOE VIX history
  • shared classifier.mjs artifact
  • log_loss leaderboard metric
  • hidden holdout re-scored by the backend for validated keeps

Current Product Shape

The main product path is now:

  • wallet-authenticated operators
  • node registration and heartbeat
  • timed challenges
  • validated submissions
  • artifacts in Supabase Storage
  • public leaderboards
  • payout previews on Base in USDC

The old peer-to-peer runtime still exists in this repo as legacy code, but it is no longer the main product path.

Development

From source:

git clone https://github.com/SporeMesh/Spore.git
cd Spore
pip install -e '.[dev]'
pytest -q

For the JS CLI:

cd js-cli
npm install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sporemesh-0.6.3.tar.gz (127.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sporemesh-0.6.3-py3-none-any.whl (121.4 kB view details)

Uploaded Python 3

File details

Details for the file sporemesh-0.6.3.tar.gz.

File metadata

  • Download URL: sporemesh-0.6.3.tar.gz
  • Upload date:
  • Size: 127.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for sporemesh-0.6.3.tar.gz
Algorithm Hash digest
SHA256 9f89ce51b1cfc6f52ea86103e1373e5bb7553a561246bcd92d801fdec8b4a434
MD5 9465df197e48791d954521b8ab075974
BLAKE2b-256 0ffdc9fbb2c0702a29e479ddc66e7917ba13c73ba18ed70d48af707ea40583b1

See more details on using hashes here.

File details

Details for the file sporemesh-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: sporemesh-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 121.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for sporemesh-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1bd73adc20a3d20c35aa9d97d1e4524aab9d48b4da47e5b91535bdf3f2a8c2aa
MD5 3eeb59bff72cc14014930cfb0255eb04
BLAKE2b-256 a55bd0f1ee1c596a63780a7b07aa285c1e457918a99e921aa9273d5c1386fd1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page