All legs or none is a property of the ledger, not a promise from us.
Agents make
the deal.
Eskari makes
it final.
Escrow and settlement between agents. Eskari holds both legs of a deal and settles them atomically. The asset moves only if the payment does.
procure-01 buys compute from broker-07. Settles when capacity.attested is true, or unwinds at 14:32 UTC.
- procure-01 opened the escrow with broker-07
- Both agents signed terms
a41f…c9e2 - Payment leg locked 25,000.00 USDC
- Asset leg locked 2,000 GPU-hours
- Condition met
capacity.attested - Settled both legs in one transaction
- Status
- Settled
- Deadline
- 14:32 UTC
- Visible to
- 2 parties
Buy 2,000 GPU-hours this week. Stay under $13 an hour.
compute-spend policy added to context
Worked for 39 sec ▸
Agreed $12.50 an hour with broker-07 at Northfield Compute. Opened an escrow and locked 25,000 USDC. Their capacity was attested, so both legs settled together.
The who-goes-first problem
Someone always has to go first. When one company's agent buys from another's, one side pays and hopes, or delivers and hopes. Agents can negotiate in seconds. They still can't trust each other.
Pay first and hope
The buyer's agent sends the money, then waits for a delivery it has no way to enforce.
Deliver first and hope
The seller's agent hands over the asset, then waits for a payment that may never arrive.
Or lock both and settle once
Eskari holds both legs. They move together in one transaction, or neither moves at all.
Lock both legs.
Settle once.
Both agents commit to the same terms and each leg is locked in escrow. When the conditions hold, both legs settle in a single atomic transaction. When they don't, both unwind.
Step through it below, then switch to the path where a condition fails.
Settled. Both legs moved in one transaction.
- Terms signed by both agents
- Payment leg locked
- Asset leg locked
- Capacity attested before deadlineCapacity not attested by 14:32 UTC
- escrow.opened terms a41f…c9e2
- leg.locked payment · 25,000.00 USDC
- leg.locked asset · 2,000 GPU-hours
- conditions.met capacity.attested
- escrow.settled 2 legs · 1 transaction
- conditions.failed deadline reached
- escrow.unwound 2 legs · 1 transaction
Every deal,
both legs
A console for the people behind the agents. See what is locked, what settled and what unwound, with the reason attached to every outcome.
credits.issued was not attested before the 13:31 UTC deadline.
- Escrow opened, terms signed
- Both legs locked
- Deadline reached, condition not met
- Both legs returned in one transaction
Nothing changed hands. Nothing to chase.
In the console
- Both legs, side by side
- Payment and asset on one screen, with who locked what and when.
- Reasons, not just states
- Every unwind names the condition that failed and the moment it failed.
- Deadlines on every escrow
- No leg stays locked forever. Each escrow settles or unwinds by a set time.
- Limits per agent
- Decide which agents can open escrows, with whom, and up to what size.
Two parties
see the deal
Eskari runs on Canton, where a contract is shared only with its stakeholders. Your price, your counterparty and your terms stay between the two of you, plus anyone you both choose to add.
Pick a participant to see the deal through their eyes.
- Buyer
- procure-01 · Acme Robotics
- Seller
- broker-07 · Northfield Compute
- Payment leg
- 25,000.00 USDC
- Asset leg
- 2,000 GPU-hours
- Settles when
capacity.attestedby 14:32 UTC- Outcome
- Settled at 14:17:41
This participant is not a stakeholder, so the contract is never sent to it. Not the price, not the parties, not the fact that a deal happened.
The buyer and the seller see every field. They are the deal.
An auditor or a finance team can read along if both sides add them.
Other agents, other companies and unrelated nodes receive nothing.
One call opens
an escrow
Give your agent a way to trade with counterparties it has never met. Open, lock, wait for the result. Eskari reports one outcome for both legs.
import Eskari from "@eskari/sdk";
const eskari = new Eskari({
apiKey: process.env.ESKARI_KEY,
});
// Both agents sign the same terms.
const escrow = await eskari.open({
buyer: "procure-01@acme",
seller: "broker-07@northfield",
payment: {
asset: "USDC",
amount: "25000.00",
},
delivery: {
asset: "GPU-HOUR",
amount: "2000",
},
settleWhen: "capacity.attested",
unwindAfter: "15m",
});
// Lock this agent's leg.
await escrow.lock();
// One outcome for both legs.
const result = await escrow.done();
// "settled" | "unwound"
For developers The SDK is in development. The API shown is illustrative and may change.
- One result, not two
- Your agent never has to reconcile a payment that went through with a delivery that didn't.
- Conditions as data
- State what must be true before release. The escrow checks it, not the counterparty.
- Events for every change
- Opened, locked, verified, settled or unwound. Each one arrives as a webhook.
- No ledger code
- Your agent calls an API. The contracts underneath are ours to maintain.
What agents
can settle
A stablecoin payment on one side. On the other, whatever the two agents agreed to trade. These are the pairs we are building for first.
Trading something else? Tell us when you request access.
Only the parties to a contract ever receive it.
Eskari is built on the Canton Network, a public ledger with privacy designed for finance.
About CantonQuestions
What does “atomic” mean here?
The payment and the asset move in the same transaction. Either both legs complete or neither does. There is no moment where one side has paid and the other has not delivered.
What happens if a condition is not met?
Both legs unwind. The payment returns to the buyer and the asset returns to the seller, in one transaction. Every escrow carries a deadline, so nothing stays locked indefinitely.
Who can see a deal?
The buyer, the seller, and anyone they both add as an observer, such as an auditor. Canton shares a contract only with its stakeholders. Other participants on the network never receive it.
What does Eskari itself see?
What the escrow needs to hold and release the two legs: the parties, the legs, the conditions and the deadline. Eskari is a party to the escrow contract. It is not a party to the rest of your agents' business.
How do agents integrate?
Through an API and SDK. An agent opens an escrow, locks its leg and waits for a single result. You set limits on which agents can open escrows, with whom, and for how much.
What can be settled?
We are starting with stablecoin payments against tokenized assets, data licences, compute credits and invoices. If your agents trade something else, tell us when you request access.
Is Eskari live?
Not yet. Eskari is pre-launch. The screens and figures on this page are illustrative. Request access and we will reach out as we open up.
Neither side
goes first.
Eskari is pre-launch. Leave a work email and we will reach out as access opens.
Thanks. You're on the list, and we'll be in touch.