Private preview · management plane by invitationPrivate preview
The signing layer that refuses to guess.
Signing Fabric gives teams a private control plane for custody, approvals and audit. Threshold cryptography keeps a complete private key out of existence.
The management plane is available by invitation. Wallet creation and signing remain private, supervised ceremony paths while we prove the fabric with our own controlled surfaces.
Shares live in deliberately different environments with no shared operator credentials and no shared control plane. Only partial signatures ever leave a domain — compromising one yields a value that is useless without the other.
Neither domain alone can sign. Compromising one yields a share that is useless without the other.
Scroll to follow one request through the whole path. Every denial is a useful result.
01
Decode
The exact bytes become a typed, human-readable intent. Nothing is evaluated against a summary.
02
Evaluate
Versioned value-conservation policy runs before either domain may touch a share. Unknown instructions deny.
03
Approve
Members sign the request they actually reviewed. The approval is bound to the bytes, not to a screen.
04
Sign
Two independent domains emit partial signatures. Neither holds — or ever sees — a complete private key.
05
Record
The verdict, the actors and the committed transition enter the append-only trail and signed webhooks.
sr_3f8a…9c2alive path
raw calldata
0xa9059cbb0000000000000000000000
71c7656ec7ab88b098defb751b7401b5
f6d8976f00000000000000000000000
00000000000000000000002386f26fc1
method
transfer(address,uint256)
recipient
0x71c7…976f · treasury (allowlisted)
amount
10.000000 USDC
residual
none · value fully accounted
policy v14 · value conservationverdict: allow
value conservationinputs = outputs + fee
destinationmatches allowlist v14
recursive decodeno nested unknown call
spend windowwithin 24h rolling limit
unknown instructionwould deny · fail closed
2 of 3 approvalsquorum met
AA. Okaforsecurityapproved
MM. Lindqvisttreasuryapproved
RR. Haddadengineeringpending
each approval carries an Ed25519 stamp over the request bytes — not over a rendered summary
policy.evaluatedallow · policy v14
approval.recorded2 of 3 · stamped
signing_request.signedquorum spanned 2 domains
webhook.deliveredHMAC verified · 1 attempt
append-onlyno row is ever rewritten
01 / 05
Decode
The exact bytes become a typed, human-readable intent. Nothing is evaluated against a summary.
What you can integrate today
Useful before a signature ever exists.
The surfaces below are live in the invite-only management plane and documented route by route. Each one is generated from the same OpenAPI specification the API is built against.
Policy in the signing path
Versioned value-conservation rules run before either domain may use a share. Decoding is recursive, and an instruction the engine does not understand is a denial — never a default-allow.
/v1/policies · /v1/policies/{id}/versions
Approvals bound to bytes
Quorum approvals carry an Ed25519 stamp over the request itself, so a member signs what they reviewed rather than what a screen rendered. Roles decide who can even be counted.
/v1/signing-requests/{id}/approvals
Append-only audit
Every verdict, actor and committed transition becomes a structural event. Reads are cursor-paginated and are deliberately not themselves audited.
/v1/audit
Signed event delivery
Timestamped HMAC signatures, bounded retries and a stable delivery id so your handler can be idempotent without guessing.
/v1/webhooks
Keys, roles and stamps
Organization-scoped API keys, per-member signing keys and revocation. A credential from another organization cannot even tell your resources exist.
/v1/api-keys · /v1/members
Full platform at launch
One signing layer. Every critical surface.
Embedded wallets, treasury controls and automation share the same fail-closed policy boundary. Plans change capacity and support — never the custody model or security guarantees.
Create
All plans
Wallet infrastructure
Embedded user and business wallets
All EVM networks, Solana and Bitcoin at launch
Browser, server, React, WalletConnect and native iOS SDKs
Passkeys, biometrics, OAuth and enterprise SSO
Control
All plans
Policy and approvals
Policy checks before every use of a share
Web and Face ID clear-signing approvals
Configurable multi-person quorums and roles
Scoped sessions, API signers and delegated automation
Operate
All plans
Payments and workflows
Batch payments and controlled dApp sessions
Qualified gas sponsorship for EVM and Solana
Signed webhooks, retries and reconciliation
Crypto-only billing in approved assets on supported chains
Prove
All plans
Evidence and recovery
Live and historical audit with export
Customer-verifiable policy, quorum and finality evidence
Independent-domain recovery without reconstructing a key
Quorum-approved provider exit to a customer-controlled wallet
Enterprise
Custom only
Private, colocated low-latency execution.
Dedicated topology, customer-specific integration, custom limits, retention, SSO and support belong to Enterprise. The fast path is designed for colocated low latency without bypassing policy, quorum or evidence controls.
The complete wallet, custody and enterprise platform scope in one readable view. Checks show included capability; an X includes the relevant limitation from reviewed public product material.
Feature
Signing FabricComplete scope
Privy
Turnkey
MPCVault
Wallets and money movement
Embedded user walletsWallets provisioned directly inside an application.
Included
Included
Included
Team vaults rather than embedded user wallets.
Business and treasury vaultsShared wallets with roles, approvals and operating controls.
Included
Included
Included
Included
EVM, Solana and BitcoinThe three primary launch chain families.
Included
Included
Included
Included
Additional-chain adaptersExtensible signing and policy adapters beyond the launch families.
Included
Included
Included
Included
WalletConnect and dApp accessControlled connections to external applications and protocols.
Included
Included
Included
Included
Gas sponsorshipPolicy-controlled fee payment for user transactions.
Included
Included
Included
No native sponsorship product documented.
Batch paymentsValidated multi-recipient payment and approval workflows.
Included
Included
Included
Included
Funding, swaps, bridges and on/off-rampIntegrated asset movement through qualified providers.
Included
Included
Included
Included
Cards and controlled spendPolicy-limited card and spending-account integrations.
Included
Included
No native card product documented.
Included
Earn and DeFi workflowsPolicy-gated access to yield and protocol integrations.
Included
Included
Included
Included
Security and control
No complete key assembledSigning completes without reconstructing a full private key.
Included
Key use reconstructs inside a provider TEE.
Full-key operations run inside a provider TEE.
Included
Independent operator domainsA signing quorum spans separately operated infrastructure.
Included
Provider-operated signing infrastructure.
Provider-operated signing infrastructure.
Server domains are provider-operated.
Proactive share refreshShares rotate while wallet addresses remain unchanged.
Included
Not documented in reviewed public material.
Uses a different full-key architecture.
Included
Programmable policiesRules constrain signers, assets, destinations, value and sessions.
Included
Included
Included
Included
Multi-person approvalsRole-aware quorum approval for sensitive actions.
Mobile clear signing and biometricsNative transaction review and biometric approval.
Included
Included
Included
Included
RecoveryGoverned user, member and organisation recovery paths.
Included
Included
Included
Included
Wallet and custody exportCustomer exit through quorum-controlled resharing or audited migration, without platform lock-in.
Included
Included
Included
Included
Developer and enterprise platform
Web, server and native SDKsTyped clients and UI kits for browser, backend and mobile apps.
Included
Included
Included
Included
Passkeys, OAuth and consumer authEmbedded authentication and delegated sessions for end users.
Included
Included
Included
Built around team-member identity.
Organisations, sub-orgs and rolesTenant isolation and fine-grained administration.
Included
Included
Included
Included
Audit and signed webhooksSearchable events, delivery history and authenticated callbacks.
Included
Included
Included
Included
SSO, SCIM and MFAEnterprise identity lifecycle and access enforcement.
Included
Included
Included
Included
Customer security evidenceVerifiable custody, policy, quorum and execution evidence.
Included
No portable evidence bundle documented.
Included
No portable evidence bundle documented.
Dedicated or custom deploymentEnterprise topology, private connectivity and colocated fast paths.
Included
Not documented in reviewed public material.
Not documented in reviewed public material.
Included
Signing Fabric values show the complete planned platform scope. Competitor entries summarize official public material reviewed 1 September 2026. “Not documented” is not proof of absence.
Crypto-native pricing
Full platform. Lower entry price.
Monthly settlement in USDC. No cards and no security downgrade by tier: every production plan includes the core API, SDKs, policies, approvals and evidence surface.
Launch pricing · allowances and overages remain subject to final service terms
Developer surface
Read the contract before the pitch.
The public docs describe the management plane that exists today: authentication, endpoints, security invariants and event delivery. Nothing in them implies a signing path you cannot reach.
import { FabricClient } from"@signing-fabric/sdk-server";
const fabric = new FabricClient({
baseUrl: process.env.FABRIC_API_URL,
apiKey: process.env.FABRIC_API_KEY,
});
// Cursor-following iterator over the append-only trail.
for await (const event of fabric.audit.iterate({
action: "signing_request.approved",
limit: 50,
})) {
console.log(event.at, event.actor_id, event.outcome);
}
Audit reads are org-scoped and never mutate the trail.
list-policies.ts
// Policies are versioned; a request is always evaluated// against the version that was active when it was created.const { data: policies } = await fabric.policies.list();
for (const policy of policies) {
const { data: versions } = await fabric.policies.versions(policy.id);
console.log(policy.name, versions.at(0)?.version);
}
Mutating routes require an Ed25519 request stamp in addition to the API key.
verify-delivery.ts
import { verifyWebhookSignature } from"@signing-fabric/sdk-server";
app.post("/fabric", express.raw({ type: "*/*" }), (req, res) => {
try {
// The RAW body — re-serialized JSON will not verify.
verifyWebhookSignature(
req.body,
req.header("X-SF-Signature") ?? "",
process.env.FABRIC_WEBHOOK_SECRET,
);
} catch {
return res.sendStatus(400);
}
res.sendStatus(202);
});
Header format is t=<unix seconds>,v1=<hex>, with a 300s default tolerance.
Private preview
Make the boundary part of the product.
Review the frozen security properties, request management-plane access, and discuss supervised ceremony access without assuming a public signing path that does not exist.