Login to reply
Replies (15)
That's pretty, where do you generate those graphs?
I’m hosting a local copy of am-i.exposed and those graphs render client-side in the browser using mempoolspace api 🕶️ embedded the latest coinjoin.nl tx on the landing page using this tool ⚡️
Looks crazy on a phone aspect ratio:


Syncing will take a couple more hours, then we can do another 
CoinJoin.nl — WabiSabi Coordinator for Wasabi Wallet
Not-for-profit coinjoin coordinator, 0% fee, weekly rounds. Batch your bitcoin transactions for lower fees and better privacy.
So cool!
That graph creates the illusion of linkability because there are two trillion missing lines.
I checked one of my coinjoin transactions and none of the links reported was real.
Yeah, the lines are “possible” links with small probability
The Coinjoin view is better, with anonset per denomination
Interesting.
Well you can't show all possible links.
And that is the reason it gives an A+ rating, this method can’t link outputs to actual inputs 🕶️
Link probability matrix does give the total number of interpretations 🤯Sure, there are 41579595052351490 interpretations for that small coinjoin transactions but there are 67% probably of linkeability?! It's a joke.
Also, is it me or the tool does contemplate the probability of consolidation?
Look, I like the tool but it is useless for analyzing Wasabi transactions, but instead of saying "there is no way to analyze this thing", they prefer to lie. That's the same that Samourais did for years.
That graph, that linkeability probability matrix are simply fake and it is very easy to verify what I say: take a coinjoin transactions in which you participated and see if any of those links match teality.
Yeah, it’s not close reality at all. Percentages don’t add up 100% and more ‘likely’ is not the actual link. I should open an issue to let the am-i.exposed devs know. Or ask Claude to fix the probability matrix for me 😇 so it just says chance=1/inputs
probably using d3.js under-the-hood?
(most complex web visuals do – and a lot of high-level charting libraries are usually built atop of it too)
used to be difficult to learn, but with the help of LLM’s, it’s probably a lot more beginner friendly now (hopefully)
D3 by Observable | The JavaScript library for bespoke data visualization
The JavaScript library for bespoke data visualization
Copilot says:
```
No, this repo does **not** use d3.js directly. However, it uses **Visx** (from Airbnb), which is a collection of low-level React components built on top of d3 primitives.
The repo imports specific d3 utilities only where needed:
- `d3-sankey` - for Sankey graph layout
- `d3-hierarchy` - for hierarchical data structures (Pack, Tree)
- `d3-array` - for utilities like `bisector`
- `d3-shape` - for curve and shape utilities
The visualization strategy is to use **Visx components** (like `@visx/sankey`, `@visx/hierarchy`, `@visx/shape`) that handle rendering, then supplement with targeted d3 modules for data transformation and layout calculation. This keeps the bundle size smaller than importing the full d3.js library while maintaining full functionality.
Examples in the codebase:
- **Sankey diagrams** (`FlowChart.tsx`, `CoinJoinChart.tsx`) - uses `@visx/sankey` + `d3-sankey`
- **Bubble charts** (`UtxoBubbleChart.tsx`) - uses `@visx/hierarchy` + `d3-hierarchy`
- **Timeline charts** (`PrivacyTimeline.tsx`) - uses `@visx/shape` + `d3-shape`
```