Database
Atlas is built around a simple idea: if data is hard to read, slow to query, and constantly needs translation between protocol logic and app UI, only the biggest teams will bother building. So Atlas treats the network as something apps can actually query.
Apps should not need three translation layers just to show one profile
A lot of decentralized systems make builders do the same exhausting dance: fetch protocol data, rebuild custom indexes, reshape it into an app database, then reshape it again for the interface. The protocol may be decentralized, but the complexity still pushes power toward the few teams with enough money and time to tame it.
Atlas starts from a different assumption: data access must be fast and efficient. The less we need to transform data between the protocol layer and the user interface layer, the better.
That matters politically as much as technically. If useful apps are easier to build, more people can build them. Lowering that barrier helps decentralize power in practice, not just in branding.
Not a slow blockchain, not a bag of scattered blobs
For rich application data, Atlas avoids two common extremes. A classic blockchain is great when the whole system depends on one shared ordered log, but it is a painful foundation for everyday app queries. A pure DHT spreads data around the network, but fast filtering, linking, and workflow handling become much harder.
Atlas instead behaves like a database sharded by types. Registries specialize in the kinds of data they understand and serve well. That gets much of the same benefit that microservices bring to large companies: focused storage, focused indexing, and focused features, without giving up shared interoperability.
- Not one giant chain. Atlas does not force all rich data into a single globally serialized history.
- Not a fully scattered DHT either. Atlas wants structured data to stay discoverable, queryable, and practical to serve fast.
- Instead, registries specialize by type. They can become very good at serving a narrower area of the network.
- The result feels closer to microservices. Same shared protocol outside, specialized data services inside.
Every piece of data moves through a stack that stays understandable: one envelope for transport and verification, shared types for meaning, strict validators for eligibility, handling modes for storage behavior, and documented workflows for state changes.
Every record starts with an envelope
EnvelopeAtlas uses a constant outer format called an Envelope. That gives the network one reliable shape for verifiability and transport, no matter what the content actually means.
A registry or app can first validate the envelope itself, then move on to interpreting the content inside it. Verification stays predictable even when the meaning differs between a profile, a credential, a catalog, an attachment, or some domain-specific record.
The result is simpler tooling. You do not reinvent transport logic every time you define a new kind of data.
Apps and registries learn one outer shape.
The same container can travel through different registries.
The envelope stays stable while inner semantics vary by type.
Meaning is layered, not guessed
Types + Validators
Atlas uses schema.org types for the broad
semantic skeleton. That gives the network a shared starting point for
what a document is supposed to represent.
Then Atlas narrows that meaning with JSON schema validators and additionalType
identifiers. Those stricter rules tell a registry or process exactly what
fields it expects and whether an envelope is eligible to be accepted.
The same layer can also describe how the record should behave over
time, for example latestOnly,
latestWithHistory, appendOnly,
workflow, or attachment. That means a
registry does not have to guess whether it should replace,
accumulate, sequence, or simply store the envelope.
Verifiable container
schema.org type Broad meaning
Strict eligibility rules
additionalType Handling behavior
latestOnlylatestWithHistoryappendOnlyworkflowattachmentRegistries specialize by type instead of all doing everything
Type ShardingAtlas does not require every registry to become equally good at every possible kind of data. A registry can specialize around the types it wants to store, query, and serve efficiently.
That lets operators build targeted indexes and targeted product features. One registry may focus on identity-related data, another on domain credentials, another on some workflow-heavy niche. This is one reason Atlas can feel more like a practical database network than a universal blob store.
It is similar to how large engineering teams use microservices: shared contracts at the edges, specialized behavior inside each service.
Profiles, proofs, balances, recognized competence.
Strict validators and high-fidelity checks for one domain.
State-heavy processes with rules tailored to that area.
Workflows turn stored documents into explicit processes
Documented WorkflowsSome envelopes are not just records. They are steps inside a process. Atlas handles that by documenting workflows: what envelopes need to exist, what conditions must be met, and what can move a process into its next state.
That makes the behavior inspectable. Instead of hiding all the logic in a private backend, Atlas can describe the expected transitions in a way operators and builders can follow.
Once the workflow is documented, registries know what they are allowed to process, and app builders know what they should expect to happen next.
Operators can choose the engine, then optimize for fast reads
Compatible StorageAtlas does not hard-code one database engine into the protocol. A registry can use any implementation it wants as long as the API layer stays compatible with the required envelope structure and filters.
In Atlas's main app implementation, each node runs PostgreSQL. That is a practical implementation choice, not a rule the whole network is forced to copy.
PostgreSQL works especially well here because Atlas can combine fast GIN indexes on JSON structures with classic relational features. That helps registries link related envelopes, build materialized views, and answer useful questions quickly.
In practice, those materialized views can represent how a registry currently sees an identity: whether it appears to be a verified human, what competences it recognizes, what balance it sees, and for registries, how much data fidelity they currently appear to have based on what they have synced from the network.
Useful when multiple records stored in one registry reference each other.
Identity verification, competence, balances, and registry fidelity.
Builders can read practical state without rebuilding everything themselves.
Guides, registries, and shelters each solve a different problem
Routing + Redundancy Guides are specialized registries used for network routing.
They store DataCatalog envelopes and verify a registry's
totalBurn across freshness windows together with its declared
supported data types.
Shelters are different. They are primarily the user's own local disk space, supporting all data types and acting as a personal inbox and outbox. Remote shelters can provide redundancy for availability when the user is offline. Guides do not index shelters.
Between those roles sit the ordinary registries that specialize in storing and serving chosen kinds of data. These are typically run by app builders who need specific data types for their application features — they prefer operating within shared infrastructure rather than proprietary silos, gaining access to the network's data in exchange for neutral sharing.
None of these infrastructure roles are verified humans, so they do
not receive FairShares income and do not act in the human trust
allocation role. Still, like any identity, they can be targets of
trust signals, and a registry's reputation can also be inferred
from its public operators declared (and proven) in its DataCatalog.
Indexes registry catalogs, supported types, freshness, and burn-based signals.
Stores and serves selected types with domain-focused features.
Broad type support for inbox and outbox resilience.
A database model built for real apps, not just protocol purity
Atlas tries to keep protocol data closer to what apps actually need to render and query.
Envelope, type, validator, and handling mode each do a clear job.
Registries can focus on the domains they serve best instead of pretending to optimize everything.
The network fixes the contract, not the database brand. PostgreSQL is the main implementation today, not a protocol law.
Indexed JSON, links, and materialized views let users and builders ask useful questions without rebuilding the network locally.