for builders

Built for agents and the people who build them.

Usign ships a full MCP server, a Stripe-style REST API, and HMAC-signed webhooks. Connect it to Claude or any MCP-capable agent and start sending. Same primitives everywhere: workspaces, templates, merge fields, contracts, signers.

> List my templates
Creator Agreement (v4) · NDA (v2) · MSA (v1)
> Draft the Creator Agreement for maya@studio.co, fee 2,500
Draft created · status: draft · id: ctr_8fK2…
> Preview it
Valid · 6 fields filled · 0 missing
> Send it
Sent · token minted · email dispatched
POST /v1/contracts
// create is always a draft — send is a separate call
{
"template_id": "tpl_creator_v4",
"signer": "maya@studio.co",
"fields": { "fee_amount": 2500 },
"dispatch": false
}
→ 201 · { "id": "ctr_8fK2a", "status": "draft" }

Three steps to your first contract.

01 · connect
Connect the MCP server.

Add the Usign MCP server to your agent and authenticate the workspace once.

02 · list
List your templates.

Your agent reads the published templates and their merge fields automatically.

03 · send
Send your first contract.

Draft, preview, then confirm send. The signer gets a clean link by email.

Every tool your agent gets.

The full agent surface, named in mono. Create is always a draft. Send is always explicit.

{{ t.name }}explicit
{{ t.desc }}
two-phase safety

Create is always a draft. Send is always explicit.

create_contract and create_contracts_bulk never dispatch. Email goes out only on send_contract. An agent literally cannot fire a contract in a single call. Developers look for this guarantee, so we put it in the type system.

create → draft send → sent
webhooks

Every event chains.

Each lifecycle event fires an HMAC-signed webhook carrying your own external_reference, the ID you set when creating the contract. Match it on your side and route the event anywhere: a CRM, a queue, another agent.

{{ e.name }} {{ e.desc }}