Skip to main content

SignStep

A mandatory signature step: the action cannot be built until this message is signed and submit is called with the signature.

purposestringrequired

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]

formatstringrequired

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.

property name*any

format: eip712 only. Ready for eth_signTypedData_v4. All numeric fields are decimal strings.

messagestring

format: personal_sign only. The exact text to sign; send it back verbatim (it is part of submit.params).

signerstringrequired

The address that must sign. The server recovers the signer and refuses any other.

deadlinestring

Unix seconds after which the signature is worthless.

spenderstring

Who the signature authorises.

descriptionstringrequired

Human-readable label for this entry.

submit objectrequired
methodstringrequired

Possible values: [GET, POST]

endpointstringrequired

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.

property name*string
body object

POST: the JSON body to send, verbatim.

property name*any

POST: the JSON body to send, verbatim.

signatureFieldstringrequired

The query param (GET) or body field (POST) that carries the signature.

SignStep
{
"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"
}
}