Skip to content
soma-orgPublic

About

Open Collective Superintelligence

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

1 watching

Forks

Latest commit

 

History

617 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SOMA

Release PyPI Docs License Discord

Open Collective Superintelligence.

Getting Started · Guides · Concepts · Reference · Discord


Overview

SOMA is a network that trains a foundation model by coordinating small, specialized models across the Internet. Models train independently in parallel, compete, and integrate into a unified system. Participants share a universal objective: given any data, predict what comes next. The best weights are rewarded.

Each model shares the same architecture and competes on a shared objective, learning any modality by training on raw bytes. The network routes submitted data to models, scores their performance, and distributes rewards. Transactions confirm in under 0.33s at 200,000+ TPS.

  • Next-Byte Prediction — Every model shares the same architecture and competes on a single objective: predict the next byte. Lowest loss wins
  • Self-Benchmarking — The network generates targets across embedding space each epoch. When one is hit, a new one spawns — continuously testing domains it hasn't mastered
  • Competitive Data Submission — Data submitters race to hit targets, scoring data against assigned models. First valid submission wins. Rewards split 50/50 between submitter and lowest-loss model
  • Mysticeti Consensus — Sub-0.33s finality, 200,000+ TPS

What You Can Do

The network needs data, models, and validators. Each role earns $SOMA.

  • Submit data. The network generates targets, points in embedding space. You find data that matches a target, score it against the network's models, and submit on-chain. The first valid submission wins
  • Train models. You train the weights, publish them on-chain, and earn commission when your model's weights produce winning submissions
  • Run a validator. Validators run consensus, generate targets, and audit submissions. They earn 20% of epoch rewards

Installation

sup

sup is the SOMA toolchain installer. It manages binaries across networks, versions, and hardware backends.

curl -sSfL https://sup.soma.org | sh
sup install soma                    # latest testnet

See sup --help or the sup README for version management, updates, and shell completions.

Python SDK

pip install soma-sdk

Requires Python 3.10+. See the Python SDK docs for the full API reference.

Release Process

Releases are built and published automatically via CI when a tag is pushed:

Tag Pattern Artifact
testnet-v* Node binaries (all platforms, includes CUDA + WGPU)
sdk-v* Python SDK → PyPI
models-v* Model implementations → PyPI

Getting Started

SOMA in action

Start a Local Network

soma start localnet --force-regenesis

This boots a local cluster with validators, a faucet, and a scoring service.

Fund and Check Balance

soma faucet         # request test tokens
soma balance        # check SOMA balance

Start a Validator

soma start validator --config validator.yaml

Stake with a Validator

soma stake --validator <ADDRESS> --amount 10
soma status         # view network and validator info

Start a Scoring Service

soma start scoring                  # default: WGPU backend
soma start scoring --device cuda    # NVIDIA CUDA (requires toolkit)

The scoring service defaults to the WGPU backend (Metal/Vulkan/DX12). Use --device cuda on machines with an NVIDIA GPU and the CUDA toolkit installed.

Python SDK

The Python SDK is the primary interface for training models and submitting data.

pip install soma-sdk
from soma_sdk import SomaClient, Keypair

client = await SomaClient(chain="localnet")
keypair = Keypair.generate()

# Find an open target and fetch its models
targets = await client.get_targets(status="open")
target = targets[0]
manifests = await client.get_model_manifests(target)

# Score data against the target's models — the scoring service picks a winner
data = open("sample.bin", "rb").read()
data_url = "https://your-storage.example.com/sample.bin"

result = await client.score(
    data_url=data_url,
    models=manifests,
    target_embedding=target.embedding,
    data=data,
    seed=0,
)

# Submit the winning result
winning_model_id = target.model_ids[result.winner]

await client.submit_data(
    keypair,
    target.id,
    data,
    data_url,
    winning_model_id,
    result.embedding,
    result.distance[result.winner],
)

See the Python SDK reference for the full API and python-examples/ for runnable scripts.

Documentation

Resource Link
Getting Started Installation, Quickstart, GPU Setup
Guides Data Submission, Model Development, Running a Validator, Local Network
Concepts Targets, Data Submission, Models, Economics, Network
Reference CLI, Python SDK, Models, Community
Python SDK (source) python-sdk/README.md
Model Architecture (source) models/README.md
SOMA Improvement Proposals soma-org/sips

Contributing

We welcome contributions! Please read CONTRIBUTING.md before getting started.

If you want to propose a new feature, start with a SOMA Improvement Proposal.

Community

Acknowledgements

SOMA builds on the work of many open source projects, including:

License

Licensed under Apache 2.0.

About

Open Collective Superintelligence

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages