StoneReason
Know what a blockchain answer is worth, before you act on it.
StoneReason is infrastructure for software that moves money. One API reads balances, watches for payments and reports network state across several blockchains — and every response tells you how strongly it is established, rather than leaving you to assume.
Free Beta. No card, no sales call, no approval queue. Nothing is priced and no availability is promised.
The problem
Blockchain data is easy to get and hard to trust. Providers return a number with no indication of where it came from, how old it is, or whether anyone else agrees. Most of the time that is fine. The times it is not are the times money moves.
A number with no provenance
A balance arrives. Was it read from one node or several? Was that node on the canonical chain? Nothing in the response says, so nothing in your code can branch on it.
“Confirmed” means four different things
Every chain settles differently. Treating a Bitcoin depth, an Ethereum checkpoint and a Stellar ledger close as one boolean is how a payment gets credited and then disappears.
Silence where a refusal belongs
When a provider cannot answer, you usually get something anyway: a stale read, a zero, an empty list. An absence that looks like an answer is worse than an error.
What StoneReason does about it
Every answer carries its own evidence, on axes that are never collapsed into a score. And when the evidence is not there, the request is refused with the reason, rather than answered with a guess.
What it rests on. Whether an answer was verified against the protocol, attested by an outside party, or simply repeated from one source. Three different things, labelled as three different things.
How much it covers. A portfolio read that could not reach one token family says so. You get the answer and the gap, not a total that quietly excludes something.
What settlement means here. Each chain’s own vocabulary, not a shared “confirmed”. Base finalises when its batch lands on Ethereum; Stellar closes a ledger and there is nothing to wait for. Both are reported in their own terms.
Whether it is one moment. Two reads composed into one answer either describe the same instant or the answer says they do not.
Who it is for
Wallets
Show a balance you can stand behind, across several chains, from one integration — and know when a number is weaker than it looks, so your interface can say so instead of guessing.
Stablecoin and payment companies
Watch for a specific payment to a specific address and be told when it arrives, when it settles, and what settlement means on that chain. No polling loop of your own, no depth constants in your code.
Exchanges and on/off ramps
Credit a deposit on a rule you chose rather than on a provider’s default, with the chain’s own settlement condition in the response and a receipt you can reconcile against.
Fintech and developer platforms
One API and one set of semantics across chains, so the difference between networks is a field in a response rather than a fork in your codebase.
What works today
This is a Free Beta and the surface is narrow on purpose. Here is exactly what is available, generated from the running deployment rather than written by hand.
| What you can do | Where | Status |
|---|---|---|
| Read a native or token balance | 6 networks — arbitrum, avalanche, base, bsc, ethereum and polygon | Available |
| Watch for a payment and settle it | 9 networks — arbitrum, avalanche, base, bsc, celo, polygon, stellar, ton and xrpl | Available |
| Read engine and network state | 6 networks | Available |
| Arbitrary watches and event streams | — | Not deployed here |
| Broadcast a transaction | — | Not on the Beta surface |
Live component state is on the status page. Per-network detail is on the networks pages.
Why you can check this rather than take our word for it
It refuses in public
Ask for something this deployment cannot serve and you get a typed refusal naming what is missing — not an empty result. The refusals are documented beside the methods.
It never holds a key
There is no method that accepts a private key, a seed or a passphrase, and no custody of any kind. Broadcasting relays bytes you signed elsewhere; it does not produce them.
The numbers on this page are generated
Every count above comes from a manifest read out of the running deployment. If a capability stops being served, the sentence about it leaves this page rather than becoming untrue.
Starting takes about a minute
Create an account
An email and a password. No card and no sales call.
Make a project
Choose the networks and the product you want. A project is one workload, with its own scope.
Issue a key
Shown once, scoped to what you chose, revocable from the dashboard at any time.
Make the first call
The quickstart is one curl. Your request appears
in your own log with its id and latency.
Free Beta: nothing is priced, there is no SLA, and the limits are published before you hit them.