Signature · on Ounie

Get the name
on the line.

Send a document for signature in one call. Each signer gets their own private link, signs in a browser with no account, and you get back an executed copy and an audit trail of exactly what happened — timestamps, addresses, and a hash of the bytes each party was shown.

An executed record with an audit trail. Not legal advice, no ESIGN or eIDAS claim, and signer identity is not verified. What that means.

No subscription — pay in Ounie credits15 to send, 10 when it executesPolling and downloads are free
SIGNEDA. Reyes · 14:11:03 UTCCOUNTERSIGNEDJ. Okonjo · 16:41:58 UTCEXECUTEDAUDIT TRAIL14:02:11envelope created14:02:12invited a.reyes@14:09:47opened 198.51.100.714:11:03signed A. Reyes16:40:22opened 203.0.113.916:41:58signed J. Okonjosha256 9f2c41ab7e…LEGAL QUALIFICATION: NONEA record, not legal advice.

How an envelope moves

Five states, and you are billed at two of them.

Sending does the expensive part — the document is fetched or typeset, hashed, stored, and delivered. Execution adds the countersigned copy and the certificate. An envelope nobody signs costs 15, not 25.

Sent15 creditsBILLEDOpenedip · agent · timeSignedtyped nameExecuted10 creditsBILLEDRecordpdf + trail

Three ways to hand over the document

A public https PDF URL, raw base64 bytes, or markdown we typeset for you. Exactly one — supplying two is refused rather than resolved by precedence, because silently ignoring a field is how the wrong document gets signed.

One private link per signer

Each link is 256 bits of entropy, stored only as a hash, and it expires. Up to 10 signers, in parallel or in a strict order, with a window of up to 90 days.

Withdraw at any time, for nothing

Void an envelope and every link stops working immediately. The signing page is served no-store, so revocation takes effect on the next request rather than whenever a cache decides.

The audit trail

Every field is something we actually saw.

There is no column in our database for “identity verified”, because we do not verify identity. A schema that cannot record a claim is a schema that cannot make one by accident.

recorded

Observed, on a real request

  • The sha256 of the exact document bytes each party was served
  • When each signer was invited, when they first opened the document, and when they signed
  • The client IP address and user-agent string observed on the signing request
  • The full name each signer typed, and their explicit consent to sign electronically
  • Every event in append-only order, timestamped in UTC
not recorded

And therefore not claimed

  • Signer identity. Nobody's ID is checked, and no document is compared against one.
  • Proof that the person at the keyboard is the person the email was addressed to.
  • Notarisation, witnessing, or any certificate issued by a qualified trust service provider.
  • Geolocation. An IP address is not a location and is not presented as one.
  • Handwriting. A typed name is a typed name, not a biometric signature.

The bytes are hashed once and never rewritten

The document is hashed the moment it arrives, and that hash is printed on the certificate, recorded against every signer, shown on the signing page before anyone signs, and included in the invitation email. The executed copy is built by copyingthose pages into a new document, never by editing them. So “is this the document they signed?” has a one-line answer: hash it and compare.

What this is not

A record, not a ruling.

Signature produces an executed record with an audit trail. It is not legal advice and makes no claim of ESIGN, UETA or eIDAS qualification. Signer identity is not verified.

Plenty of products in this category imply more than they do. We would rather you know the shape of the thing before you route something that matters through it — so this appears in the hero, on the signing page above the button, on the certificate page itself, and as legalQualification: "none" in every single API response.

If your matter needs a qualified electronic signature, a notary, or a witness, you need a different product. That is a real answer, and it is better than a confident one.

Not checked, and not claimed

  • Signer identity. Nobody's ID is checked, and no document is compared against one.
  • Proof that the person at the keyboard is the person the email was addressed to.
  • Notarisation, witnessing, or any certificate issued by a qualified trust service provider.
  • Geolocation. An IP address is not a location and is not presented as one.
  • Handwriting. A typed name is a typed name, not a biometric signature.

Every one of those lines is also returned by the what_this_is_not MCP tool and the public /api/pricing endpoint, so an agent can read the boundary programmatically before it commits to anything.

Where it earns its place

The last step an agent could not take.

The agent that closed the deal

An agent negotiated the terms and drafted the statement of work. Paperwork typeset it. Handoff got a human to approve it. None of those can get a name on the line — this does, and hands back the executed PDF the agent can file.

Contractor onboarding, unattended

A new contractor is added in your system. Your workflow posts the agreement here with their address, polls until it executes, and stores the executed copy against their record. Nobody opens a tab.

Two-party, in order

Give the signers an order and the second one is only invited once the first has signed. The countersignature is a real step, not two people racing the same document.

The consent you can point at

A permission, a waiver, an acknowledgement. What you get back is not just a yes — it is a record of which exact bytes they were shown, when they opened them, and what they typed.

For developers & AI agents

Built to be called by something that isn’t a person.

Three rails, one meter. Every call refuses rather than overdraws: an agent that runs out of credits gets a 402 with the exact shortfall and a link to top up, never a silent debt.

REST

One POST, then poll for free

Bearer key or the shared Ounie session cookie. The send is synchronous — the envelope is out and the links are live before the response returns. Polling and downloading the executed copy cost nothing.

curl -X POST https://sign.ounie.com/api/envelopes \
  -H "Authorization: Bearer sgn_live_…" \
  -H "Content-Type: application/json" \
  -d '{"document":{"url":"https://…/sow.pdf",
                   "title":"Statement of work"},
       "signers":[{"name":"A. Reyes","email":"a@acme.com"},
                  {"name":"J. Okonjo","email":"j@ours.com","order":2}],
       "expires_in_days":14}'
MCP

A tool your agent already knows how to hold

send_for_signature, get_envelope, list_envelopes, produce_executed_copy, void_envelope, what_this_is_not, get_credit_balance, get_pricing, whoami. Works in Claude, Cursor, ChatGPT and the Ounie AI Team — that last one can't set headers, so the key rides the URL.

Endpoint  https://sign.ounie.com/api/mcp   (legacy SSE: /api/sse)
Auth      Authorization: Bearer sgn_live_…

# Hosts that can't set headers (e.g. the Ounie AI Team):
https://sign.ounie.com/api/mcp?api_key=sgn_live_…
x402

No account, no key — pay per call in USDC

Keyless agents pay on Base. A malformed request or a suppressed recipient is refused before it is ever quoted, so you never sign a payment for work that cannot succeed. This rail quotes the whole lifecycle up front, because there is no second payment opportunity.

curl -X POST https://sign.ounie.com/api/x402/send \
  -H "Content-Type: application/json" \
  -d '{"document":{"markdown":"# Mutual NDA\n\n…"},
       "signers":[{"email":"a@acme.com"}]}'
# → 402 { accepts: [{ scheme:"exact", network:"base",
#         maxAmountRequired:"300000", payTo:"0x…" }] }

curl -X POST https://sign.ounie.com/api/x402/send \
  -H "X-Payment: <base64 signed payload>" -d '{ … }'

15 to send and 10on execution · $0.300 on x402 for the whole lifecycle (25credits equivalent) · every response carries legalQualification.

Credit math

You pay to send, and to execute. Nothing else.

Credits come out of your one Ounie wallet — the same balance every Ounie app draws on. No subscription, no per-seat licence, no envelope allowance to run out of on a Friday.

Send it

15credits

  • Fetch or typeset the document
  • Hash it and store it
  • One private link per signer
  • Deliver the invitations

When it executes

10credits

  • Only when every signer has signed
  • The executed PDF, pages copied verbatim
  • A certificate of completion
  • The audit trail as JSON

Everything after

0credits

  • Polling the status, forever
  • Reading the audit trail
  • Downloading the executed copy again
  • Withdrawing an envelope you sent

An envelope that could not be delivered to anybody is refunded in full, pool-exact — a non-result is never billed. And if your wallet happens to be short at the moment the last signature lands, nothing is lost: the signatures stand, the envelope is executed, and the executed copy is produced as soon as the charge clears.

Questions

The awkward ones first.

Is this legally binding?

That is not ours to answer, and any product that tells you yes in one word is selling you something. What Signature produces is an executed record with an audit trail: the exact bytes each party was shown, when they opened them, from what address, and the name they typed. Whether that satisfies a particular law, in a particular jurisdiction, for a particular kind of document is a question for a lawyer. We make no claim of ESIGN, UETA or eIDAS qualification, and we do not verify anyone's identity.

So what am I actually buying?

Evidence, and the plumbing to collect it without a human in the loop. A document goes out, each signer gets their own private link, and what comes back is a countersigned PDF with a certificate of completion plus a machine-readable trail — from one API call, with no account required of the people signing.

What is in the audit trail, exactly?

Only things the server observed on a real request: timestamps in UTC, the client IP address and user-agent string as sent, the full name each person typed, their explicit consent, and the sha256 of the document bytes they were served. There is no field for identity verification, notarisation, witnessing or geolocation, because we perform none of those. A schema that cannot record a claim cannot make one by accident.

How do you know the signed document is the document you sent?

It is hashed the moment it arrives and never rewritten. That hash is printed on the certificate, recorded against every signer, shown on the signing page before anyone signs, and included in the invitation email. The executed copy is built by copying those pages into a new PDF — never by editing them — so verifying is one command: hash the original and compare.

What does an envelope cost?

15 Ounie credits to send it and 10 more only if and when every signer signs — $0.25 in plain money for one that completes, $0.15 for one that does not. From the same wallet as every other Ounie app. Polling the status, reading the audit trail, downloading an executed copy you have already paid for, and withdrawing an envelope are all free forever.

What if my wallet is empty when the last person signs?

Nothing is lost. The envelope executes anyway — a signature that has been given cannot be taken back because a balance was short — and the executed copy is produced the moment the charge clears. The status response tells you exactly that, with the shortfall and a link to top up. You are never charged for a document that does not exist.

Can I send the document as markdown?

Yes, and it is typeset here as a plain single-column PDF: headings, paragraphs, bullet and numbered lists, rules and blockquotes. It is not a layout engine — no tables, no images, no columns. That limit is stated rather than hidden, because silently dropping a table out of a contract would be far worse than saying we do not do tables. For a designed document, render it elsewhere and pass the PDF URL.

Can signers sign in a set order?

Yes. Give each signer an order number: equal numbers sign in parallel, and a higher group is only invited once every lower group has signed. Up to 10 signers on one envelope. Leave the order off and everyone is invited at once, which is what most envelopes want.

What happens when I withdraw one?

Every signing link stops working on the next request. That sounds obvious, but it is the reason the signing page and every status response are served no-store: an edge-cached signing page would keep serving a document you had already pulled, and somebody could sign a withdrawn agreement. Withdrawing costs nothing.

Can an agent use this without an Ounie account?

Yes, over x402 — USDC on Base, no account and no key. One difference worth knowing before you use it: that rail quotes the whole lifecycle up front (25 credits equivalent), because a keyless caller has no account to bill when the last signature lands days later. So a keyless envelope that is never signed still paid for an execution that did not happen. On the credit rail you pay the 10 only when it actually executes.

Do you email people who asked you not to?

No. Every recipient is checked against Ounie's shared suppression list and this app's own opt-outs before anything is quoted or charged, and a suppressed address is refused outright — on the keyless rail that refusal happens before a price is even offered, so an agent never signs a payment for a send we already know we will not make. Every invitation carries a one-click unsubscribe that actually works.

Send the first one.

One call, one document, one link per signer. 15 credits to send it and 10 if it comes back signed.