The dependency map
The whole graph in one place. Every condition, every arrow into it and every arrow out of it, as navigable links rather than a picture.
This is the map itself. It is text rather than a diagram, for two reasons. A diagram of thirty seven nodes and eighty odd arrows is unreadable at any size that fits on a screen, and a diagram cannot be clicked through, searched, read aloud or quoted. Every reference below is a real link to the card it names.
How to read the three columns
The first column names the condition. The second lists everything it waits on, by number. The third lists everything that waits on it. A condition marked root has nothing upstream on this map, so a failure there has nowhere further back to go. A condition marked end has nothing downstream, so a failure there is contained.
Follow the second column to walk backwards from a symptom to a cause. Follow the third column to work out how expensive a given failure is. The two columns are computed from the same set of edges, so they cannot disagree with each other or with the individual cards.
What the numbering means and does not mean
Cards are numbered A1 through H4 by stage and position. The numbering is a filing system, not a sequence of actions and not an order of importance. C4 does not happen after C3 and is not more advanced than it. The only ordering claim this site makes is the one carried by the arrows, and the arrows are in the columns rather than in the numbers.
If a card interests you, its own page has far more than the map can show: what happens concretely when the condition is false, how to confirm it, and what it is commonly confused with. Start from how to read a card if the labels are not yet obvious.
The map, stage by stage
Ground you are standing on
Conditions about the machine and the room, true before any software is involved.
| Condition | Depends on | Blocks |
|---|---|---|
| A1 The machine is one you actually control | root | A2, A4, B1, E1 |
| A2 The clock is close enough to right | A1 | B2 |
| A3 Nobody else can read the screen | root | B5 |
| A4 Losing the device does not lose the account | A1 | C4, D2, D4, E1 |
A path to the network
Conditions that have to hold before an onion address can resolve to anything at all.
| Condition | Depends on | Blocks |
|---|---|---|
| B1 The browser came from the Tor Project | A1 | B2, B3, B4, B5 |
| B2 The client can build a circuit at all | B1, B3, A2 | C5 |
| B3 There is a route out of the network you are on | B1 | B2 |
| B4 The security level was set before the first page loaded | B1 | B5, C5 |
| B5 The browser doing this does nothing else | B1, A3, B4 | end |
An address that is the market
Conditions about the string itself, where it came from and where you keep it.
| Condition | Depends on | Blocks |
|---|---|---|
| C1 You hold the address as characters, not as a click | root | C2, C3 |
| C2 The string has the shape an onion address has | C1 | C4, C5 |
| C3 The address arrived by a route you can use again | C1 | C4 |
| C4 The address is kept somewhere that outlives the browser | C2, C3, A4 | D5, H4 |
| C5 You can tell a mirror from a copy of the market | C2, B2, B4 | D1 |
A session that is yours
Conditions about the account, and about being able to become that account twice.
| Condition | Depends on | Blocks |
|---|---|---|
| D1 The account name is used nowhere else | C5 | D2, D3, D4 |
| D2 The password exists somewhere outside your head | D1, A4 | D5 |
| D3 You can produce the second factor on demand | D1 | D5 |
| D4 The recovery phrase is written down before it is wanted | D1, A4 | H4 |
| D5 You can log in a second time | D2, D3, C4 | E3, E4, F1, F2 |
Value you can move
Conditions about coins, confirmations and fees, all of which have to hold before a total can be covered.
| Condition | Depends on | Blocks |
|---|---|---|
| E1 A wallet exists and the keys are yours | A1, A4 | E2, E3 |
| E2 The balance has confirmed and can be spent | E1 | E4, E5 |
| E3 You hold the coin this order is priced in | E1, D5 | E5 |
| E4 The deposit address came from the session you are in | D5, E2 | F5 |
| E5 There is something left over for the fee | E2, E3 | F5 |
An order that can exist
Conditions about the listing, the other side and the delivery details that travel with the order.
| Condition | Depends on | Blocks |
|---|---|---|
| F1 The listing is one you have actually read | D5 | F2, F3, F4, H2 |
| F2 The other side answered before you spent anything | F1, D5 | F5 |
| F3 The delivery address is written the way the post wants it | F1 | F4, G1, G2 |
| F4 What you send is encrypted to a key that exists | F3, F1 | G4 |
| F5 The total is covered at the moment you press the button | E4, E5, F2 | G3, H1 |
A parcel that can arrive
Conditions on the receiving end, most of which stopped being changeable the moment you pressed the button.
| Condition | Depends on | Blocks |
|---|---|---|
| G1 Somebody can take delivery at that address | F3 | G2, H3 |
| G2 The name on the parcel fits the door it arrives at | F3, G1 | end |
| G3 You decided in advance what happens if nothing arrives | F5 | G4 |
| G4 You can wait without doing anything | G3, F4 | H1 |
A close you can live with
Conditions about ending an order, and about still being yourself the next time you come back.
| Condition | Depends on | Blocks |
|---|---|---|
| H1 Escrow is still holding when the problem appears | F5, G4 | H2 |
| H2 You can describe the problem in the market's own terms | H1, F1 | H3 |
| H3 Feedback goes up after the outcome is known | H2, G1 | H4 |
| H4 You can come back tomorrow and still be you | C4, D4, H3 | end |