Cryptographic signing.
Your keys, your choice.
Sign any document or payload with your own Ed25519 keypair. Keep the private key on your device, in your browser, or stored encrypted with us โ DocSign never sees plaintext.
From keypair to verified signature in four steps.
- 1
Generate a keypair
DocSign creates a fresh Ed25519 keypair in your browser at signup. Pick one of three storage modes.
- 2
Confirm by email
The public half is registered server-side after you click the one-time email link.
- 3
Sign anything
Documents, payloads, login challenges โ all hashed with SHA-256 and signed locally with your key.
- 4
Verify openly
Anyone with the payload + public key can verify. No DocSign account needed.
Everything you need to issue, share, and verify signatures.
13 documented features across keys, auth, sharing, and developer tooling. Click any card to read more.
Authentication
Email-confirmed keys
Every new public key is tied to a one-time email link before it can sign anything.
Business verification (KYB)
Verify companies across 15+ jurisdictions with per-country field maps, free registry lookups, and sanctions screening.
Identity verification (KYC)
Optional ID document + selfie check that promotes signatures from cryptographic to legally meaningful.
Tamper-evident audit log
Every security-relevant event is recorded with user, action, IP, user-agent, and timestamp.
Two-factor authentication (TOTP)
RFC 6238 TOTP with QR enrolment, 8 single-use recovery codes, and email-link reset.
Random-positions PIN login
After password, DocSign asks for three random positions of your PIN โ the UK-bank pattern.
Documents & signing
Signing requests
Hand someone a one-time link; their browser signs and the signature lands in your app via webhook.
Public signature verification
Anyone with the signed payload + public key can verify a signature โ no login, no account.
Public + private document sharing
Toggle a document between unguessable QR-shareable URL and email-invite-only.
For developers
Cryptographic-proof login
Partner sites get an Ed25519 signature over their nonce โ stronger than 'they were logged in just now'.
Sign in with DocSign (OIDC)
Standard OAuth 2.0 + OpenID Connect 1.0 provider with PKCE, refresh-token rotation, and a signing:proof scope.
API keys + HMAC webhooks
Bearer-authed REST API for backends; every outbound webhook is HMAC-SHA-256-signed.
Drop DocSign into your stack in an afternoon.
Bearer-authed REST API, OAuth 2.0 + OIDC provider with PKCE, and an Ed25519 crypto-proof flow that's verifiable without trusting us. All three documented end-to-end.
Signing requests
POST a payload + email; we return a one-time signLink. Your callback URL receives an HMAC-signed webhook on completion.
Sign in with DocSign
Standards-based OIDC. Discovery + JWKS + PKCE + refresh-token rotation. Drop-in for any OIDC client library.
Cryptographic-proof login
The user signs your nonce with their email-confirmed key. You verify the Ed25519 signature locally โ no DocSign trust needed.
API keys + webhooks
dsk_ Bearer keys, SHA-256 hashed at rest. Webhooks signed with HMAC-SHA-256 so you can verify integrity offline.
curl -X POST https://docsign.example.com/api/signing-requests \
-H "authorization: Bearer dsk_..." \
-H "content-type: application/json" \
-d '{
"targetEmail": "ada@example.com",
"payloadHash": "9f86d081884c...",
"payloadPreview": "Sign invoice #4711",
"callbackUrl": "https://yourapp.com/hooks/docsign"
}'
# โ { "id": "...", "signLink": "https://docsign.../sign/...",
# "callbackSecret": "..." }Three things traditional e-sign platforms don't give you.
The server doesn't hold your private key.
All wrapping and signing happen in your browser. Even a full server compromise can't produce a signature on your behalf without your passphrase.
Signatures verify without DocSign.
We use Ed25519 + SHA-256. Any library in any language can verify. No proprietary container, no vendor lock-in.
Identity stays optional.
You can do pseudonymous cryptographic signing today, then layer KYC on top whenever you need the "real human" assertion for a regulated use case.
The cryptographic primitives, picked and documented.
@noble/ed25519 in sync mode โ works on plain HTTP.
We sign the hash, not the file.
Scrypt (N=2ยนโต, r=8, p=1) from passphrase.
Plus HIBP k-anonymity check at signup.
JWKS endpoint, key rotation, refresh-token replay defense.
Over the raw body, secret returned once.
Quick answers to the most common questions.
Where does my private key actually live?+
Can I verify a DocSign signature without an account?+
What's the difference between OIDC login and the crypto-proof flow?+
Is the server side open enough to self-host?+
What's the e-sign legal weight of a signature?+
Ready when you are.
Sign up free, generate your first key in the browser, and verify a signature against it within five minutes.