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.

How an answer is labelled, and what each label means →

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.

For wallet teams →

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.

For payment teams →

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.

For exchange teams →

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.

For platform teams →

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 doWhereStatus
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.

The error model →

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.

What is established, and what is not →

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.

Live status →

Starting takes about a minute

01

Create an account

An email and a password. No card and no sales call.

02

Make a project

Choose the networks and the product you want. A project is one workload, with its own scope.

03

Issue a key

Shown once, scoped to what you chose, revocable from the dashboard at any time.

04

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.