Aernyth

Verifiable digital delivery.

Paying is easy. Proving delivery is the real problem.

Aernyth verifies what you actually received on Arc. Drop in a 3D model, get an optimised one back, and a receipt for the exact bytes is written to Arc mainnet.

Drop your .glb file here
or click to browse files
.glb models Max 24 MB No wallet required checking…
How it works

From file to onchain proof.

01

Upload

Your browser hashes the file before it leaves, so you hold your own copy of the evidence.

02

Process

Textures are recompressed. Triangles and vertices are never touched — the model is not simplified.

03

Prove

Both digests go to a contract on Arc mainnet. Your browser re-checks them against the chain.

Live receipts on Arc mainnet Arc Explorer

Each row is read live from when this page loads — not copied into it. Verified means the digests on the chain match the sizes recorded alongside them.

Loading…

Check any receipt yourself

Pick a receipt, then drop in the file that was sent or the one that came back. Your browser hashes it locally and compares against the chain — nothing is uploaded, and you do not have to take our word for any of it.

Drop a file here, or click to choose

What this is

Paying for something online is a solved problem on Arc. Knowing you got what you paid for is not.

Circle's x402 SDK settles payments on Arc, and does it well. But search its entire public API for receipt, attest, proof or deliverable and you find nothing. A buyer can prove it paid. It cannot prove what it received.

That gap matters once the buyer is software. A person can open a 3D model and see it was mangled. An autonomous agent cannot — it gets bytes back, and no way to tell a careful job from a lazy one.

Aernyth closes that gap and nothing else. After a service returns a result, it writes the digests of the exact bytes in and out to a contract on Arc mainnet. The buyer hashes its own copies and compares. No trust in the provider is needed at any point, which is the only arrangement that works when nobody is watching.

It composes with Circle's middleware rather than replacing it — gateway.require() takes the money, withReceipt() records what was handed over. Compression ratios shown here are a property of the asset, not of the service; your own model may compress far less.