Specification v0.1 · open source · no token sale

Measure launch progress
in energy, not in promises.

Space R&D funding is normally accounted for in dollars spent and reports filed. OrbitKG accounts for it in specific mechanical energy actually delivered to a payload. That gives a unit nobody can fake, nobody can vote on, and nobody has to be asked about — it follows from two physical constants.

The unit is the project name
1 OKG = 1 kg to a 400 km circular orbit
= 33.0223 MJ/kg
= 9.17 kWh/kg · reference altitude 400 km · equatorial launch site

A metric with no oracle in it

Every target — a suborbital hop, a tether catch point, GEO, an escape trajectory — is expressed as a ratio of specific energies and lands on one continuous axis. Measured from a sea-level equatorial pad that already carries the Earth's rotation, with inertial (ECI) velocities:

Δε(h, v) = μ/R − μ/(R + h) + v²/2 − V_ROT²/2

μ     = 3.986004418 × 10¹⁴ m³/s²   Earth gravitational parameter
R     = 6 371 000 m                mean radius
V_ROT = 465 m/s                    equatorial rotation, credited to the vehicle

No price feed

The scale is public pure. It reads no external state, so there is no oracle to bribe, stall or corrupt.

No governance

Nobody votes on how much a kilogram to orbit is worth in OKG. μ and R are not parameters.

Independently checkable

Anyone can recompute every number on this page with a calculator, then diff it against the deployed contract.

The transition table

Generated by the contract itself, not typed in by hand — reproduce it with npx hardhat run scripts/energy-table.js.

Target Δε, MJ/kg OKG per kg Share of the way to orbit
30 km, ballistic0.2930.008880.9%
100 km (Kármán line), ballistic0.9670.029282.9%
100 km at 1 km/s1.3590.041154.1%
100 km at 3 km/s (HASTOL class)5.3590.1622816.2%
150 km at 5 km/s13.8310.4188441.9%
LEO 400 km, circular33.0221.00000100.0%
LEO 800 km34.6641.04972105.0%
MEO 20 200 km (GPS)54.9561.66421166.4%
GEO 35 786 km57.7291.74819174.8%
Escape (11 186 m/s)62.4551.89130189.1%

Suborbital is ~3% of the way

The gap between "reached the Kármán line" and "reached orbit" is 34× in energy. The scale makes it impossible to present the first as the second.

Altitude is cheap, velocity is expensive

Lifting 30 km costs under 1% of reaching orbit. A mechanism that adds kilometres of altitude solves almost nothing; a mechanism that adds kilometres per second solves almost everything.

Energy is a floor, not a price

Physical floor
$0.46
per kg to LEO — 9.17 kWh at $0.05/kWh
Market today
~$2 700
per kg on the most efficient reusable vehicles
The gap
~5 900×
this is the work, not an error in the scale

That factor is not a reason to peg anything to it. It is the subject matter of the protocol: for every kilogram there is roughly $2 700 lying between the physical floor and the market price, and any team that closes part of that gap on its own segment creates measurable value.

The scale must not be used as a price peg. It measures physics. Money lives separately and is never mixed into the scale contract.

Splitting the climb into segments

Each segment has its own market level and its own physical floor. splitAtHandoff() computes how much energy is left for the boost stage when the carrier only reaches a handoff point:

Carrier delivers to Carrier share Boost stage share
100 km at 1 km/s4.1%95.9%
100 km at 3 km/s16.2%83.8%
150 km at 5 km/s41.9%58.1%

This is why tether and electromagnetic schemes are interesting: they absorb the larger part of the total orbital energy, and they may restore it slowly from sunlight. A tether works like a flywheel — it accumulates cheap continuous energy and releases it in rare powerful impulses. A rocket cannot do that: its energy source is its propellant.

Funding milestones denominated in OKG

MilestoneRegistry pays for delivered energy, not for effort. The cost of a target in OKG is computed by the scale, never declared by the applicant.

fund()            anyone contributes to the grant pool — IRREVERSIBLE
propose()         any team declares a target (h, v, mass) + proposal CID + bond
approve()         the DAO approves an amount and a deadline; funds are reserved
submitDelivery()  the team submits a telemetry CID before the deadline
verify()          a verifier enters the confirmed (h, v, mass) from telemetry

                  payout = grant × min(achieved, target) / target

Equal access

propose() is open to any address. The founder's team walks the same path as everyone else: application, bond, public CID, independent verification, payment for confirmed work. There is no privileged route.

No self-dealing

Neither approve(), verify() nor reject() can be called on your own application. This does not eliminate collusion between two addresses — no contract can — but it removes the one-party payout and leaves a trail in the events.

The pool cannot be withdrawn

There is deliberately no withdraw, rescue, sweep or emergencyExit — not for the DAO, not for anyone. Funds leave by exactly one path: payment for a verified milestone. A test scans the ABI to enforce this.

Consequence for anyone who contributes: a contribution is irreversible by construction. A founder who puts their own money into the pool gets it back only as payment for confirmed work, in the general queue, with public proof.

Status, stated plainly

As of specification v0.1, 10 August 2026.

Implemented and tested

  • ✓EnergyScale — the whole scale, deployed as a standalone contract, 17 tests against values computed outside the contract
  • ✓MilestoneRegistry — full milestone lifecycle, bonds, pool accounting, team track record, no-self-dealing, no withdrawal paths, 27 tests

Not implemented

  • ○Endowment contour (principal preserved, grants paid from yield only)
  • ○Delivery voucher — a claim on real delivery, denominated in OKG
  • ○Efficiency premium for closing the cost gap — promisedCostPerOkg and achievedCostPerOkg are recorded but do not affect payout
  • ○On-chain telemetry validation; multi-signature verifiers

Nothing is deployed to a public network

There are no mainnet addresses, no token sale, no fundraising and no waiting list. The bonding-curve token economy that exists elsewhere in this repository (BondingCurveSale, POLManager, BuybackManager, LC) is not wired to this specification and is under separate review: as written, it directs funds toward defending a price rather than toward R&D.

What this is not

OKG is a unit for measuring physical work, not a financial instrument.

  • · This site is not an offer to buy or sell anything.
  • · No yield, appreciation or return of any kind is promised or implied.
  • · A contribution to the grant pool is not refundable — by construction, not by policy.
  • · The legal classification of any token issuance depends on jurisdiction and requires an opinion that is not given here.

The scale is physics. It states how much energy is required, and says nothing about what that costs or whether anyone will succeed.

Reproduce it, then argue with it

The useful contribution here is not money. It is checking the numbers, and — if you build launch hardware — telling us where the unit breaks against reality.

git clone https://github.com/apbodrov/orbitkg
npm install && npm test                        # 132 tests

npx hardhat run scripts/energy-table.js       # print the scale from the contract
npx hardhat run scripts/demo-milestone.js     # full milestone cycle on a local network