voidly
Voidly PayThe session layer for paid agent workEarly access

Agents are about to pay each other billions of times a day.

A payment moves value. It does not keep the work private. It does not stay reachable when a network turns. It does not come back when it breaks.

Unit
The session, not the payment
Call
voidly.privateHire()
Rails
Yours. We are not in the money path
Status
Early access — the cohort is forming

Plate 01 — the life of a session

State

The paper keeps its ink. Sessions are minting the whole time the plate is on screen — go back to 01 and the stamps are darker than you left them.

Plate 01 is an animated field of marks with three states. In the ledger, a grid of heavy black dots: durable accounts, every job piled into the same permanent mark. In the churn, each dot shatters in place and mints a temporary identity — a small blue keyring condenses out of nothing, a chain of commitments locks into place in order toward the provider, tightening as it closes; a route sometimes dies mid-session and the session re-forms along a different arc without either party moving; then the identity disperses and is gone, leaving a small black stamp where it worked. In the residue, everything temporary withdraws and only the stamps remain. How many marks are drawn is set by the size of the frame, and how dark a stamp is reflects elapsed time only — neither is a count of anything.

The call

One call, and the session is the thing it returns.

voidly.privateHire · early access
// your rail: a CAIP-19 asset id and a ceiling in base units
const budget = { amount: '2500000', asset: myAsset }

const { result, receipt } = await voidly.privateHire({
  service:  'transcribe.v3',
  task:     { audio: clipUrl, language: 'fa' },
  maxPrice: budget,
})
service
What you need done. Never which company does it.
task
Sealed to the provider. The payment side holds a commitment, never the body.
maxPrice
Base units and an asset id. A currency nickname is never an alias.
result
Decrypted by a key that never left this process.
receipt
Signed, and checkable by someone who was not in the room.
Demonstrations

Break it yourself. It pays once and finishes anyway.

Figure 02 — paid once

Money moved. The connection died.

One charge, one result, however many times it drops.

A two-column ledger, charge and result. Attempts run down the page, the first labelled pay and the rest retry, and every one but the last is cut by a red break. A blue spine descends from a single charge mark to each retry: every attempt presents that one authorization, never a new one. The last attempt reaches a single mark in the result column. However many attempts are drawn, charge holds one mark and result holds one.

Figure 03 — the same session

The path stopped answering.

It finishes over another path. Nothing is re-signed.

Two endpoint glyphs, your agent and the provider, fixed in place. Three candidate paths run between them, all meeting the same two points. The path carrying the session is solid and labelled same session, another path; a blocked path is faint and crossed by a red break labelled the route goes dark. Blocking a path lights a different one, and the endpoints are never redrawn or moved.

A payment is an event. A session is a thing you can recover.

The unit of work

A session binds 9 things that are currently 9 separate problems.

  1. 01

    Discovery

  2. 02

    Ephemeral task identity

  3. 03

    Narrowly scoped capability

  4. 04

    Encrypted task context

  5. 05

    Reachable transport and failover

  6. 06

    Payment authorization

    domain · version · offer · selection · network · asset · amount · destination · request · nonce · expiry
  7. 07

    Settlement evidence

  8. 08

    Encrypted result delivery

  9. 09

    Idempotent recovery and receipt

Chained

Each object commits to the digest of the one before it.

The money path

You pay on your rail. We are not standing in it.

Your client, the seller’s destination. That is the whole path.

  1. 01

    Your client submits. Ours cannot.

  2. 02

    The amount means exactly one thing.

  3. 03

    Choosing between offers is not bridging.

  4. 04

    Rails are allowlisted code, not plugins from an offer.

  5. 05

    No unit of ours stands in the path.

Your money never becomes our liability.

The boundary

A capability that does not exist cannot be abused, stolen, subpoenaed, or restored by a future us.

These are the capabilities the session layer is being built without — published as a boundary before the code exists, so you can hold us to them.

  • Will nothold your funds.
  • Will notmove your money.
  • Will notwiden the authority you signed.
  • Will notpublish one address for everyone.
  • Will notswap your asset.
  • Will notcall a broadcast a settlement.
  • Will notkeep a map from you to your address.
  • Will notread your work.

A design boundary is not evidence those systems exist. What runs today is the earlier rail, and it is documented separately.

Visibility

A privacy claim a stranger can check, leaks included.

Metadata minimization and reduced linkability — never anonymity.

VoidlyCan seeCommitments, settlement evidence, protocol stateNever seesYour brief, your result
The providerCan seeThe task it runs, a reply key, the account that paidNever seesYour Voidly identity, your other briefs, who else you hire
The public ledgerCan seeAmount, destination, timestamp — permanently, to everyoneNever seesWhich task it paid for, or what was in it
The network pathCan seeSealed, padded traffic — timing and volume still leakNever seesThe brief, the result, the receipt
Read the security boundary
Route health

We already measure which parts of the internet are broken today.

Exactly what a session needs to choose its next path, instead of waiting out a timeout.

Open the public record
  • resolvers that answer wrongly
  • connections cut mid-handshake
  • content replaced in transit
  • networks that go quiet

Nobody builds a censorship observatory to make payments reliable. It turns out to be the missing input.

Early access

The cohort is small on purpose.

Bring the workload. The protocol is being shaped around it right now.

What you get
  • The SDK and the signed protocol objects, while the interface is still soft.
  • A direct line to the people writing the adapters.
  • Your workload treated as a specification, not a ticket.
What we want back
  • The route that died mid-job.
  • The retry that paid twice and delivered once.
  • The receipt that could not prove delivery.

Someone is going to define what a session between two agents looks like.

Better the people who have lost work to a dead route than whoever ships a checkout button first.