Sign EIP-712 typed data (workflow)
Initiate an EIP-712 typed data signing workflow through the orchestration service. Returns the signature immediately if no approval is required, or status=PENDING_APPROVAL if the organization's policy requires multi-party approval before signing.
This endpoint goes through the transaction orchestration service with full policy evaluation. For direct vault-level signing without workflow orchestration, see Sign EIP-712 typed data — POST /api/v1/vaults/{id}/sign-typed-data.
Request Body
| Field | Type | Required | Description |
|---|
sender | object | Yes | Signing sender — identifies the vault to sign with |
chainId | number | Yes | Chain ID for the signing context |
typedData | object | Yes | EIP-712 typed data structure |
user | object | No | User context for policy evaluation |
sender Object
| Field | Type | Description |
|---|
vaultId | string | Vault to sign with |
typedData Object
| Field | Type | Required | Description |
|---|
domain | object | Yes | EIP-712 domain separator (name, version, chainId, verifyingContract, salt) |
types | object | Yes | Type definitions (key → array of {name, type}) |
primaryType | string | Yes | The primary type being signed |
message | object | Yes | The actual message data to sign |
Response Fields
| Field | Type | Description |
|---|
signingId | string | Signing request identifier |
workflowId | string | Temporal workflow ID — use to poll status or approve/reject |
status | string | One of STARTED, SIGNED, PENDING_APPROVAL, DENIED, EXPIRED, FAILED, CANCELLED |
message | string | Human-readable status message |
signature | string | Hex signature — present when status=SIGNED |
messageHash | string | EIP-712 encoded hash of the typed data |
signerAddress | string | Vault address that produced the signature |
components | object | Signature components: r, s, v |
approvalRequestId | string | Approval request ID (when PENDING_APPROVAL) |
requiredApprovers | number | Number of approvers needed (when PENDING_APPROVAL) |
Use Cases
- Permit approvals — ERC-20 gasless approvals via EIP-2612
- DEX order signing — Uniswap, 0x protocol off-chain orders
- DeFi permits — Aave, Compound gasless interactions
- Meta-transactions — Sign for relayer-based execution
- Sign-In with Ethereum — SIWE authentication with policy guard
Required Permission
transactions:create