Skip to content

Economics

SOMA is used for staking, bonds, fees, and rewards.

Every transaction generates fees. Fees are partially burned and partially recycled into the rewards pool, targeting an annual burn of 5% of circulating supply.

Fee computation uses three network parameters:

  • base_fee: charged per transaction
  • write_object_fee: charged per object written
  • value_fee_bps: proportional to value transferred

The adjustment rate (fee_adjustment_rate_bps) moves fees toward the 5% burn target each epoch, bounded by min_value_fee_bps and max_value_fee_bps.

New SOMA is distributed each epoch following a linear curve toward a maximum supply of 10 million SOMA.

Each epoch, new emissions and fees combine into a rewards pool:

epoch_rewards = epoch_emissions + epoch_fees

Distribution:

  • 20% to validators, proportional to stake
  • 80% to target winners, split:
    • 50% to the submitter
    • 50% to the model whose weights were used
validator_share = epoch_rewards * 0.20
target_share = epoch_rewards * 0.80
submitter_reward = target_share * 0.50
model_reward = target_share * 0.50

Models and validators must stake SOMA to participate. Stake determines influence:

  • Models: more stake means more weight in target assignment
  • Validators: more stake means more weight in consensus

The minimum model stake is set by the network parameter model_min_stake, currently set to 1 SOMA.

SOMA holders who don’t want to run validators can delegate their stake:

  • Delegators earn a share of rewards based on performance, minus a commission the model or validator sets
  • Commission rates range from 0 to 10,000 basis points (0%–100%)
  • Self-staked rewards are not subject to commission

Submitters post bonds with each submission. The bond amount is proportional to data size:

bond = submission_bond_per_byte * data_size

Bonds are returned if the submission is honest. If fraudulent, the bond is forfeited and returned to the rewards pool. All bond parameters are queryable on the network.