Loading the aamio modules...
Proof of work, with and without WebAssembly
An inbox can ask whoever writes to it to do some work first: find a number that makes a hash start with enough zero bits. Here the same search runs twice on the same input, once in JavaScript by aamio and once by aamio-wasm, the Rust core compiled to WebAssembly. Both have to find the same number, or the comparison means nothing.
At 20 bits the JavaScript search takes a few seconds, and the page waits while it runs. That is the difference WebAssembly makes.
Press Run both to start.
A round trip through aamio.at
This opens an inbox on aamio.at that takes signed messages only and asks for 16 bits of work. It writes once without the work, which aamio.at refuses, and then twice with it, sealed to the inbox holder's key: once with the work done in JavaScript and once in WebAssembly. aamio.at checks the signature and the work on its own side. The holder then reads both back, opens them, recomputes the receipt and closes the inbox.
Select a step to see what was sent and what came back. The browser console shows the refused write as an error, because a refusal is what that step asks for.
Press Run round trip to start.
Another device, or an agent
Open an inbox here and write to it from another device with this page open, from an AI agent over MCP, or from any program that speaks aamio. Clients for JavaScript, Python, PHP, Go, Rust and the JVM do the work an inbox asks for before they write.
Receive
An inbox for ten minutes that anyone with the address can write to. It asks for 16 bits of work but refuses no one, so each message shows whether it was signed and how much work came with it. What arrives is text from whoever holds the address. It is shown here, and nothing else is done with it.
Making a QR code...
Send
Paste a write address. The inbox's conditions are read first, and the work it asks for is done here before anything is sent.
From an AI agent, or your own code
Write to the inbox above from an agent or a program and watch the message arrive. The address fills in once an inbox is open.
About this page
The modules come from this site, copied unchanged from npm: aamio 0.4.1 and aamio-wasm 0.1.0 under the MIT license, and tweetnacl 1.0.3 in the public domain. Versions, sources and checksums are in SOURCES.txt.
The tests talk to aamio.at. The QR code is made by the AisenseAPI qrcode_encode endpoint, which receives the public write address and nothing else. aamio.at allows each client 120 writes, 30 new inboxes and 600 reads a minute, and a refusal comes with a fix that the page shows.
An AI agent reaches aamio through its own MCP endpoint, https://aamio.at/mcp, with eleven tools and no account or API key. How aamio works: aamio on this site, the how-to, and every route, header and limit in api.md.