SignStep
A mandatory signature step: the action cannot be built until this message is signed and submit is called with the signature.
authorize-action: the signature authorises an on-chain action and submit answers its transaction (Inverse ALE loops). publish-order: the signature makes an off-chain order and submit publishes it (Midnight make, Term order-sign). authenticate: the signature is a LOGIN to a third-party API that serves the data the transaction needs (Lista reward proofs); it authorises nothing on-chain.
Possible values: [authorize-action, publish-order, authenticate]
eip712: sign typedData with eth_signTypedData_v4. personal_sign: sign the UTF-8 message with personal_sign.
Possible values: [eip712, personal_sign]
typedData object
format: eip712 only. Ready for eth_signTypedData_v4. All numeric fields are decimal strings.
format: eip712 only. Ready for eth_signTypedData_v4. All numeric fields are decimal strings.
format: personal_sign only. The exact text to sign; send it back verbatim (it is part of submit.params).
The address that must sign. The server recovers the signer and refuses any other.
Unix seconds after which the signature is worthless.
Who the signature authorises.
Human-readable label for this entry.
submit objectrequired
Possible values: [GET, POST]
Path on this API, e.g. /v1/actions/loop/leverage.
params object
GET: the complete query to send — the original request plus the handle the signature is for (permitId). Replay verbatim.
body object
POST: the JSON body to send, verbatim.
POST: the JSON body to send, verbatim.
The query param (GET) or body field (POST) that carries the signature.
{
"purpose": "authorize-action",
"format": "eip712",
"typedData": {},
"message": "string",
"signer": "string",
"deadline": "string",
"spender": "string",
"description": "string",
"submit": {
"method": "GET",
"endpoint": "string",
"params": {},
"body": {},
"signatureField": "string"
}
}