Specification · Open protocol · Apache 2.0
The canonical Wavestar protocol.
- Current version
- v0.1 draft · 2026-Q2
- RFC target
- v1.0 · 2026-Q4
- License
- Apache 2.0
- Source
- github.com/wavestar/spec
What the spec covers
Six modules in one document
- 01
did:orbit method
Namespace structure, DID Document format, verificationMethod profiles (Ed25519 and BLS12-381), service endpoints, and resolution rules. Extends W3C DID Core 1.0. - 02
Attest envelope
COSE (RFC 8152) envelope format for signed facts crossing module boundaries. Defines the header parameters, payload canonicalisation (JCS / RFC 8785), and the BLS aggregation format. - 03
Registry log format
Trillian-compatible log format for the append-only registry. Entry canonicalisation, inclusion-proof format, consistency-proof format, and the signed-tree-head schema. - 04
ORCH messages
Wire format for order submission, cancellation, novation, and settlement. Includes the state-machine transition messages and the settlement record format. - 05
Anchoring
Format for hourly anchors into Ethereum and Bitcoin. Defines the OP_RETURN payload layout, the anchor Merkle-inclusion proof, and the reconciliation protocol. - 06
Error codes
The catalogue of structured error codes across every surface. Error codes are part of the public API contract; additions only within a major version.
Versioning roadmap
How we get to v1.0
- 2026-Q2In progress
v0.1 — Public-comment draft
First public-comment draft published. Covers did:orbit, Attest envelope, registry log format, and a subset of ORCH messages. Comment window open through the end of June 2026. - 2026-Q3Planned
v0.2 — Post-comment revision
Published revision incorporating public-comment feedback. Adds the full ORCH message set, including novation and default-waterfall messages. Second 60-day comment window. - 2026-Q4Planned
v1.0 RFC — Target
Target Request-for-Comments publication. v1.0 is the first version we commit to backwards-compatibility on within the 1.x major line. SDKs pin to v1 on or before RFC publication. - 2027-Q2Planned
v1.1 — Additions
Planned additive revision adding the Market listing schema and the dispute-messages subset. Fully backwards-compatible with v1.0.
did:orbit DID Document
A worked example
A did:orbit DID Document for a Planet PlanetScope spacecraft. Two verification methods — Ed25519 for operational signing, BLS12-381 for Attest quorum participation — and one telemetry service endpoint. Conformant with W3C DID Core 1.0 and the did:orbit method extension.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://wavestar.space/context/did-orbit/v1"
],
"id": "did:orbit:sat:planet:norad-47428",
"controller": "did:orbit:org:planet",
"verificationMethod": [
{
"id": "did:orbit:sat:planet:norad-47428#ed25519-2026",
"type": "Ed25519VerificationKey2020",
"controller": "did:orbit:sat:planet:norad-47428",
"publicKeyMultibase": "z6Mk..."
},
{
"id": "did:orbit:sat:planet:norad-47428#bls-2026",
"type": "Bls12381G2Key2020",
"controller": "did:orbit:sat:planet:norad-47428",
"publicKeyMultibase": "zUC7K..."
}
],
"service": [
{
"id": "did:orbit:sat:planet:norad-47428#telemetry",
"type": "TelemetryEndpoint",
"serviceEndpoint": "https://tlm.planet.com/v1/did/norad-47428"
}
]
}Canonicalisation
JCS and COSE, by specification
- Payload canonicalisation
- JCS · RFC 8785
Before any payload is hashed or signed, it is canonicalised under JSON Canonicalization Scheme (JCS, RFC 8785).
- Signature envelope
- COSE · RFC 8152
Signed payloads crossing module boundaries are wrapped in COSE envelopes with explicit algorithm and key identifiers.
- Aggregated signatures
- BLS12-381 · draft-irtf-cfrg-bls-signature
Aggregated signatures conform to the BLS signature draft. Aggregation rejects duplicates, wrong-group points, and mismatched messages.
- Timestamps
- RFC 3339 · UTC
All timestamps are RFC 3339 with an explicit UTC offset. Timestamps without an offset are rejected.
- Numeric quantities
- Exact decimal strings
Money, propellant grams, downlink bytes, watt-seconds — all on the wire as decimal strings. Floating-point numeric types are rejected.
- Identifiers
- did:orbit:{kind}:{operator}:{id}
All identifiers are fully-qualified did:orbit URIs. Bare NORAD IDs, SATCAT numbers, and proprietary identifiers are not accepted.
Compatibility and conformance
How to say a product is Wavestar-compatible
- 01
Conformance levels
The spec defines three conformance levels — Reader, Observer, and Participant. Reader can verify; Observer can co-sign quorum facts; Participant can submit settlements. Each level has a published conformance test suite. - 02
Trademark policy
The phrase "Wavestar-compatible" is a trademarked claim that requires passing the published test suite for the relevant conformance level. Apache 2.0 covers the specification; the mark is separately licensed. - 03
Interop fixtures
Canonical test vectors — DID Documents, COSE envelopes, BLS aggregations, inclusion proofs — are published at github.com/wavestar/spec-fixtures. SDKs pass the fixtures on every commit. - 04
Public errata process
Errata against the specification are published at github.com/wavestar/spec/errata. Errata are issue-driven, not revision-driven — they live on a published page and accumulate into the next version.
Governance
Who owns the specification
The specification is owned by the Wavestar Holdings engineering office today. When the Orbital Interchange Foundation — a 501(c)(6) industry nonprofit — forms around month 18, the specification transfers to the Foundation under an Apache 2.0 license, and OIF becomes the long-term specification steward.
Contribute
Redlines welcome on GitHub.
Every section of the specification is open for comment. File issues, propose text, or submit a pull request against github.com/wavestar/spec. Comment windows are published alongside each new version.