Depth
Depth Sync is the synchronisation layer that runs beneath the ceremony. Two phones join the same session. Both chips tap in. Both people confirm they are present. Only then does the hold begin.
The depth meter fills in silence on both screens. Neither party can see a countdown. They can only feel the weight of staying. When either person ends the hold, the depth achieved is whatever threshold was last crossed. Both chips sign the joint proof. The bond is written and attested on-chain.
Either party can end the hold at any moment. Either party can break the bond later with a solo tap. You can leave a relationship unilaterally. You cannot enter one without the other person present.
Full technical specification: agent-on-a-card-spec-v5.md
The ceremony
You are holding a card. Someone is standing in front of you holding theirs. You are deciding whether to bring them together.
This is the threshold moment. You are weighing something. You know that if you hold long enough, your agent will carry a trace of this person forward. That trace does not disappear when the bond breaks. It becomes part of you. You are in control. You can stop at any time.
The Depth Sync is the protocol that holds this moment. Two chips. One session. The depth achieved is determined entirely by how long both parties choose to stay.
The three depths
Active, continuous consent
The hold is not passive. Before the depth meter begins to move, both phones show a single button. Both people must tap it. The hold does not start until both have chosen to begin.
This is not a security gate. It is a ceremony gate. The moment of mutual confirmation is the moment both agents begin to become shaped by each other. The card, the phone, and the attention of the person holding them: all three, present, at once.
Both chips sign a shared digest. The encounter is permanent. The card carries the trace forward.
The depth meter
The bond record
{ // chip identities "chip_a":"0x...", "chip_b":"0x...", "depth":"level2", "formed_at":1710000000, "bond_digest":"0x...", "sig_a":"0x...", "sig_b":"0x..." }