Skip to content

Developer overview

Bitcoin Universe development is contract-first: services and documentation are generated from the same interface contracts, so a documented endpoint and a running endpoint cannot silently diverge.

InterfaceContract formWhere
Product REST APIsOpenAPI 3.1Declared in each repository’s docs.manifest.json under contracts.openapi
Event and WebSocket interfacesAsyncAPIDeclared under contracts.asyncapi
Protocol payloads and data modelsJSON SchemaDeclared under contracts.jsonSchema
Indexer HTTP APIsOpenAPI, route prefix /<indexer-name>/The matching indexer repository

Indexer API routes follow one convention across the estate: the route prefix is the indexer repository’s name with its index- prefix removed. Example: the Patina indexer serves under /patina/.

  1. Trust the contract, not example responses. Examples are illustrative; the OpenAPI or AsyncAPI document is normative.
  2. Handle every availability state. APIs distinguish unavailable from empty and unknown from zero. Treating a 5xx or an explicit unavailable state as “no results” corrupts downstream data. See How to read our status.
  3. Respect stability badges. Endpoints marked experimental can change without notice; deprecated endpoints name their replacement and removal window.
  4. Never send secrets. No Universe API asks for seed phrases or private keys. Signing happens in your wallet, not on our servers.
  • Product source and documentation repositories: see the product catalog.
  • Protocol specifications and vectors: see the Protocol Atlas.
  • Shared CI actions used by every repository: universe-ci-actions.
  • This portal itself: docs-platform. Its manifest schema, source pinning, and build tooling are public; documentation issues and content requests are welcome on any repository.