Build signing into your product on the same blockchain-anchored foundation our core product uses. Same API your customers' auditors accept as evidence.
5 minutes from signup to first signed contract in production.
# Step 1: Upload a PDF, get a document_id back
curl -X POST https://app.signatrust.io/api/v1/documents/upload \
-H "x-api-key: sk_live_..." \
-F "file=@nda.pdf" \
-F "name=NDA for Contractor"
# → { "id": "doc_4f1c", ... }
# Step 2: Create + send the envelope
curl -X POST https://app.signatrust.io/api/v1/envelopes \
-H "x-api-key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "NDA for Contractor",
"securityLevel": "VERIFIED",
"documentIds": ["doc_4f1c"],
"signers": [
{ "name": "Bob", "email": "bob@example.com" }
]
}'
# → 201 Created
# envelope_id: env_8f2a
# blockchain.tx: pending
# access_token sent to Bob via email$0.099–$0.49 per envelope vs $0.50–$1.00 at legacy enterprise APIs. Same volume tiers, fraction of the bill.
SHA-256 binds document, signers, and audit trail into one hash on Solana. One byte changes — verification breaks.
Claude and ChatGPT can send and verify envelopes in natural language. No other e-signature API ships this.
Public spec at /api-docs. Generate clients in any language with the standard tooling you already have.
Your document, signer metadata, and the full audit trail are bound into a single SHA-256 hash. That hash is written to the Solana blockchain when the envelope completes.
Anyone — including an auditor who has never heard of SignaTrust — can verify a signed document by recomputing the hash and checking the Solana transaction. Verification works without calling our API. It works if we cease to exist.
All paid tiers include the OpenAPI spec, MCP server, and Standard rate limits.
100 envelopes included
1,000 envelopes included
5,000 envelopes included
Per-envelope cost at API Scale volume
$0.099 / envelope
Legacy enterprise e-signature APIs: $0.50–$1.00 / envelope
Most e-signature APIs are infrastructure built for the 2010s — vendor-controlled audit trails, per-seat economics, no AI, no agent surface. Here's what changes when you move to next-generation.
| Capability | SignaTrust API Next-generation | Legacy enterprise APIs Annual contract, per-seat | Pay-as-you-go APIs Per-call billing |
|---|---|---|---|
| Entry tier monthly | $49 / 100 envelopes | Custom SOW | $10–$50 base + per-call |
| Per-envelope cost at scale | $0.099 | $0.50 – $1.00 | $0.10 – $0.40 |
| Blockchain anchor (composite hash on-chain) | ✅ Solana | ❌ vendor database only | ❌ vendor database only |
| MCP server for AI agents (Claude / ChatGPT) | ✅ GA | ⚠ early beta | ❌ |
| OpenAPI 3.1 spec public | ✅ | ✅ | ✅ |
| Webhook HMAC signing | ✅ per-hook secret | ✅ | ✅ |
| Independent verification (works if vendor disappears) | ✅ on-chain | ❌ | ❌ |
| Three-tier identity (Standard / Verified / Certified-passkey) | ✅ | ❌ single tier | ❌ single tier |
| AI contract analysis at the API | ✅ Gemini | ❌ | ❌ |
| Pricing model | Flat tier + envelope overages | Annual contract + per-seat | Per-call only |
Comparison reflects the structural model of each category, not any specific vendor. Pricing represents typical publicly listed API plans as of April 2026.
Higher volume, white-label, or custom limits?
Above 5,000 envelopes/mo, custom rate limits, custom data residency, org-scoped caps for your end customers — every limit is set per organization. Talk to our team and we'll configure exactly what you need.
document_iddocument_id and a signer's emailSignaTrust ships an official Model Context Protocol server. Claude, ChatGPT, and other LLM clients can list envelopes, send contracts, analyze drafts with AI, void envelopes, and verify blockchain anchors — all through natural-language conversation.
claude mcp add signatrust -- npx -y @signatrustdev/mcp-serverNo other e-signature API ships this.
MCP Server documentationTwo ways to ship with SignaTrust: build from API primitives (the everything-from-scratch path above), or embed our signing surface inside your existing productso your users never feel like they left. Pick the lane that matches what you're building.
You want full control over UX. Render your own signing screens. Use SignaTrust as the cryptographic + blockchain backend. Best for: standalone signing apps, vertical SaaS where signing is the core surface.
You want to add signing to a product you already have. Drop in our hosted signing page (your branding, your domain), wire one webhook. Best for: PropTech, fintech, healthcare platforms, marketplaces — your users sign without leaving your app.
from: address on signer notificationsNot just "your docs are safe" — the specific primitives you need to ship a secure integration.
Mint keys with minimum scopes — envelopes:read, envelopes:write, documents:write, ai:analyze, templates:read. Rotate without downtime.
Every webhook event is HMAC-signed. Verify with one stdlib call. No replay attacks.
Per-tier rate limits with per-key tracking. Every request returns x-correlation-id for distributed tracing across your logs + ours.
Query the audit log via API. Every event includes the previous-hash — tampering breaks the chain deterministically.
Most integrations spend more time on webhook handling than the create-envelope call. Here's what lands in your app and how to verify it.
// POST https://your-app.com/webhooks/signatrust
{
"id": "evt_a3c1f5...",
"type": "envelope.completed",
"created": "2026-04-30T22:14:03Z",
"data": {
"envelopeId": "env_8f2a",
"blockchain": {
"network": "solana-mainnet",
"txId": "5xT2c...",
"compositeHash": "9f3a..."
}
}
}
// HMAC verification using the published helper
import { verifyWebhookSignature } from "@signatrustdev/signatrust-sdk";
const signature = req.headers["x-signatrust-signature"]; // e.g. "t=1714509243,v1=a3c1..."
const isValid = verifyWebhookSignature(req.rawBody, signature, WEBHOOK_SECRET);
if (!isValid) return res.status(401).end();import { SignaTrustClient } from "@signatrustdev/signatrust-sdk";
const client = new SignaTrustClient({
apiKey: process.env.SIGNATRUST_API_KEY!,
baseUrl: "https://app.signatrust.io",
});
// 1. Upload the document
const doc = await client.createDocument({
file: fs.createReadStream("./nda.pdf"),
name: "NDA for Contractor",
});
// 2. Create the envelope referencing the document
const envelope = await client.createEnvelope({
name: "Master Service Agreement",
securityLevel: "CERTIFIED",
documentIds: [doc.id],
signers: [{ name: "Alice", email: "alice@acme.com" }],
});
// envelope.id, envelope.signers[0].accessToken, envelope.blockchain.txId — all typed.npmrc entry — full instructions in the SDK README. Same setup applies to the MCP server package.SOC 2 Type II
In progress
HIPAA BAA
Available — Business tier
GDPR compliant
By design
Hash-chained audit log
Tamper-evident
API Starter is self-serve. Larger deployments get a technical review with our team.
Questions first? See the docs, or email developers@signatrust.io.