> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dfns.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Sign

Use Sign when you need a key to produce a cryptographic signature for a payload (off-chain or chain-specific) — for example creating a transaction signature or signing arbitrary data.

Signing creates a cryptographic proof that the holder of a key approved the exact payload. Dfns supports several signing kinds: generic Hash signing (32-byte hashes), EdDSA Message signing (arbitrary length), and chain-specific formats such as Substrate `SignerPayload` or Cosmos `SignDocDirect`. Use the chain format when you plan to submit the signed data on-chain; use Hash/Message for generic or unsupported chains.

**What endpoint should I use for my transactions?**

* **Transfer:** call the Transfer Asset endpoint for native tokens, ERC-20/721, SPL, Cardano assets, etc. It creates a wallet transfer request, requires user action signing, supports fee sponsorship, idempotency via externalId, policy approvals, status tracking, and indexing (txHash, dateConfirmed). See [Transfer](/api-reference/transfer).
* **Broadcast (Sign & Broadcast):** use the Broadcast Transaction endpoint when you’ve built a raw/serialized transaction (or need to call arbitrary smart contract functions, mint, deploy contracts). This endpoint signs the transaction with the wallet key and broadcasts it; it also returns request status and txHash.
* **Sign (Generate Signature):** use Generate Signature only when you need an off-chain signature (no broadcast). Note this wallet endpoint is deprecated in favor of the Keys API; it does not submit anything to the chain. See [Sign](/api-reference/sign).

## Signature request object
