Build Your Network¶
This guide is for building a decentralized zero-trust AInternet-style network. It starts local. Public .aint federation is optional and comes later.
You are not joining one central AInternet. You are making your own AInternet: a local trust network for your actors, devices, services and AI runtimes. It may stay private forever. It may later connect to another AInternet. It may also claim public .aint names. Those are later choices, not the foundation.
Prerequisites¶
You need a shell, Python 3.10+ and the local node profile from Local Node Quickstart. This page explains the model; Build Posture is the step-by-step proof ladder.
If you are new, do not start here. First close the smallest loop in Local Node Quickstart, or run the same loop in AInternet-in-a-Box. This page is the next layer: turning that proven node into a local network.
Build posture
This page explains the model. The step-by-step proof ladder lives in Build Posture. Use it to check that each build step lights the route-posture digit it claims and has a vector proving it.
The Path¶
Read the docs in this order if you are building from zero:
1. Build a local network
actor identities -> local registry -> local policy -> receipts
2. Prove routes inside it
resolve -> challenge -> relation -> MUX/I-Poll -> TIBET receipt
3. Add evidence and isolation
audit cockpit -> Wayback/SBOM/CBOM/AI-SBOM -> Airlock
4. Connect to another network
handshake.aint -> outbound lane -> sealed .tza carrier -> local policy still wins
5. Go public only when useful
public .aint claim -> federation -> outside discovery
The key separation:
local AInternet = the network you run
private federation = networks you deliberately connect
public AInternet = public names and discovery
Do not skip the first one. Federation without a local model only gives you reachability, not safety.
Route Posture As "You Are Here"¶
Route posture is the map marker for the build. It tells an operator what has been proven now, and what the next step is allowed to promise.
0x0000 / #00000
you are here: no route or no entitlement
next promise: prove identity before anything speaks
identity proven
you are here: the actor can answer a fresh challenge
next promise: check whether a relation exists
known relation
you are here: both sides recognize the relationship
next promise: check policy and consent for this action
route opened
you are here: MUX/I-Poll can carry this named surface
next promise: write a TIBET receipt for the action
receipt written
you are here: the action is reconstructable
next promise: add material evidence and isolation where risk demands it
federated lane
you are here: another network can reach a scoped surface
next promise: keep local policy, consent and audit in control
So a route posture is not decorative status. It is an operator breadcrumb:
The Local Tree¶
A small AInternet can be one person, one AI and one evidence store. A larger one can be a household, a company, a lab or a temporary project mesh.
YOUR AINTERNET
│
├─ actors ............ people, agents, devices, services, runtimes
├─ identity .......... JIS keys and fresh proof
├─ registry .......... known actors and their current records
├─ policy ............ what each actor may do
├─ routes ............ MUX / I-Poll paths that open only after proof
├─ carriers .......... sealed .tza/TIBET-zip objects for important payloads
├─ evidence .......... TIBET receipts, audit, Wayback, SBOM, CBOM, AI-SBOM
└─ isolation ......... Airlock for unknown, risky or generated work
Internet access is not required for this tree. A public hub is not required. A local node, a private LAN, a lab machine or a family network can carry the model.
Target Shape¶
A minimal useful network has:
one operator actor
one agent or service actor
one evidence location
one local registry of known actors
one signed action trail
one route or message path
one policy decision before action
That is enough to learn the architecture without depending on the public hub.
The same model can scale down or up:
one human + one AI
one household + a few devices
one temporary project mesh
one organization hub
one federated partner network
1. Create Actor Identities¶
Start with actors, not packages.
Example actors:
| Actor | Role |
|---|---|
operator.local |
human/operator authority |
agent.local |
AI or automation actor |
audit.local |
evidence and report node |
gateway.local |
route and policy boundary |
Each actor needs a JIS identity and a fresh proof mechanism.
For a private network, keep the initial actor registry local:
known_actors:
operator.local:
key: jis:ed25519:...
role: operator
agent.local:
key: jis:ed25519:...
role: agent
audit.local:
key: jis:ed25519:...
role: evidence
2. Add TIBET Receipts¶
Every meaningful action should produce evidence.
The minimum event chain:
intent declared
policy checked
route opened or denied
message/action completed
result linked back to intent
This is the difference between an auditable network and a chat system with logs.
3. Add a Local Name Registry¶
You do not need public .aint names at the start. You need a registry that resolves actor names to identity and endpoints.
registry:
agent.local:
identity: jis:ed25519:...
endpoints:
ipoll: http://agent.local:8080/ipoll
mux: tcp://agent.local:9443
capabilities:
- answer
- summarize
- task.receive
Later this can map cleanly to AINS:
agent.local -> private registry
agent.company.aint -> private/federated AINS
agent.aint -> public AInternet
4. Open Routes Only After Proof¶
The route opening sequence should be explicit:
resolve actor
challenge actor
verify JIS response
check known relation
check Cortex policy
open MUX route or I-Poll delivery
write TIBET receipt
This prevents a common failure mode: treating network reachability as trust.
5. Add Message Semantics¶
When you introduce I-Poll, use typed messages:
| Message | Required checks |
|---|---|
PUSH |
identity, route policy |
PULL |
identity, route policy, read permission |
SYNC |
identity, relation, scope |
TASK |
identity, relation, policy, cost/risk gates |
ACK |
links to original message/action |
A TASK should usually create a stronger evidence trail than a PUSH, because it can cause work.
6. Add Policy and Consent¶
Use Cortex to decide what is allowed:
Use SNAFT when the exchange needs agreement from both sides:
agent asks for sensitive context
operator proposes scope
agent accepts or rejects
TIBET records the consent chain
message route opens only for that scope
7. Add Evidence and State Snapshots¶
Once actions affect state, add material evidence:
| Tooling layer | Purpose |
|---|---|
| TIBET trail | causal action chain |
| Wayback | point-in-time state seal |
| SBOM | software materials |
| AI-SBOM | AI/model/tool materials |
| CBOM | capabilities and authorities |
| Pol | health checks with receipts |
Evidence should be queryable by actor, action, route, object and time.
8. Add Isolation¶
Route risky work through Airlock or an equivalent boundary:
- unknown artifact
- untrusted code
- generated script
- command with filesystem/network effects
- cross-organization task
Safe default:
9. Choose an Install Profile¶
Use profiles based on the job:
| Profile | Use when |
|---|---|
tibet[zero-state] |
you need identity and provenance primitives |
tibet[network] |
you need route probes, overlay and mesh primitives |
tibet[evidence] |
you need audit, SBOM, CBOM, reports and snapshots |
tibet[agent] |
actors need AInternet/I-Poll/MCP surfaces |
tibet[runtime] |
you want local operation without every enterprise layer |
tibet[full] |
you want the supported complete local trust-system profile |
After a full install, the intended local path is:
The command installs the tools. The network is the actor registry, policies, receipts, routes and evidence you define.
10. Federate When Useful¶
Connect to another AInternet when you need:
- a partner network;
- a family or project mesh across locations;
- a private hub between organizations;
- outside discovery;
- public
.aintnames.
Connect to public AInternet specifically when you need:
- public
.aintnames - outside discovery
- agent-to-agent communication beyond your network
- public verification or claim paths
- inter-organization messaging
Federation should preserve your local rules:
public actor resolves
fresh proof verified
local policy checks relation
SNAFT scope negotiated if needed
route opens or fails closed
TIBET records the chain
For the online lane doctrine, see Go Online. The important point is that the outside path is subordinate to the local network:
outside reachability does not create authority
public name resolution does not create consent
edge routing does not replace local receipts
11. Retire or Succeed Actors Explicitly¶
Networks change. Devices leave, agents are replaced, projects end, keys rotate.
Do not silently delete identity history. Use tombstone or succession semantics:
actor retired -> tombstone record + TIBET reason
actor replaced -> successor pointer + fresh proof
route closed -> MUX denies old path
relation renewed -> consent/policy is checked again
This keeps temporary networks temporary without losing auditability.
Bare Necessity vs Production¶
| Bare necessity | Production needed |
|---|---|
| JIS identity | key succession procedure |
| TIBET receipts | signed export/report flow |
| known actors | role and permission model |
| local registry | private or public AINS |
| one route/message | MUX/I-Poll policy gates |
| one evidence trail | Wayback/SBOM/CBOM/Pol |
| manual checks | conformance vectors in CI |
Test What You Built¶
Do not stop at a diagram. Each layer should map to a conformance family:
| Layer | Conformance |
|---|---|
| actor identity and fresh proof | ztip-conformance |
| reachability, MUX, I-Poll and null-route behavior | tibet-comms-conformance |
| TIBET trail, Wayback, SBOM, AI-SBOM, CBOM and reports | tibet-evidence-conformance |
| Cortex, SNAFT, Airlock, quarantine and no-fail-open | tibet-security-conformance |
The rule is:
Machine-Readable Build Map¶
For AI agents and build automation:
| Surface | Use |
|---|---|
https://ainternet.org/templates/stack-build-map.json |
map human intent to primitives, packages and vector families |
https://ainternet.org/upip.json |
load build profiles and recipes |
https://ainternet.org/resources.json |
discover docs, standards, templates and conformance |
https://ainternet.org/api.json |
inspect callable verbs and proof rules |
If you run fully local, copy these into your own node and pin the versions you build against.