Skip to content

    Press / to search, [ and ] for the previous and next page.

    Developer reference

    Intents API

    How to submit signed messages to the relayer and read their fate. Schemas are generated from the same code the relayer runs.

    Endpoints

    POST /intents

    Submit a signed intent (open, close, withdraw, register or revoke session keys, stake, unstake, claim).

    Request: intentRequestSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "openPosition"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "instrumentId": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "isLong": {
                  "type": "boolean"
                },
                "size": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "leverage": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "useDebt": {
                  "type": "boolean"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "instrumentId",
                "isLong",
                "size",
                "leverage",
                "useDebt",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "closePositions"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "positionIds": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "^(?:0|[1-9][0-9]*)$"
                  }
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "positionIds",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "withdrawToCore"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "amount": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "amount",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            },
            "withdrawal": {
              "type": "object",
              "properties": {
                "route": {
                  "type": "string",
                  "enum": [
                    "hypercore",
                    "hyperevm",
                    "ethereum",
                    "arbitrum",
                    "solana"
                  ]
                },
                "destination": {
                  "type": "string"
                },
                "onward": {
                  "type": "object",
                  "properties": {
                    "nonce": {
                      "type": "string",
                      "pattern": "^(?:0|[1-9][0-9]*)$"
                    },
                    "maximumFee": {
                      "type": "string",
                      "pattern": "^(?:0|[1-9][0-9]*)$"
                    },
                    "createRecipient": {
                      "type": "boolean"
                    },
                    "signature": {
                      "type": "object",
                      "properties": {
                        "v": {
                          "type": "string",
                          "enum": [
                            "27",
                            "28"
                          ]
                        },
                        "r": {
                          "type": "string",
                          "pattern": "^0x[0-9a-f]{64}$"
                        },
                        "s": {
                          "type": "string",
                          "pattern": "^0x[0-9a-f]{64}$"
                        }
                      },
                      "required": [
                        "v",
                        "r",
                        "s"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "nonce",
                    "maximumFee",
                    "createRecipient",
                    "signature"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "route"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed",
            "withdrawal"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "registerSessionKey"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "key": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "expiry": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "feeAddress": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "key",
                "expiry",
                "feeAddress",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "registerSessionKeyV2"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "key": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "expiry": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "feeAddress": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "maxBuilderFee": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "referrer": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "key",
                "expiry",
                "feeAddress",
                "maxBuilderFee",
                "referrer",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "revokeSessionKeys"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "keys": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "^0x[0-9a-f]{40}$"
                  }
                },
                "all": {
                  "type": "boolean"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "keys",
                "all",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "stake"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "amount": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "amount",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "unstake"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "amount": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "amount",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "const": "claim"
            },
            "signed": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{40}$"
                },
                "nonce": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "deadline": {
                  "type": "string",
                  "pattern": "^(?:0|[1-9][0-9]*)$"
                },
                "v": {
                  "type": "string",
                  "enum": [
                    "27",
                    "28"
                  ]
                },
                "r": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                },
                "s": {
                  "type": "string",
                  "pattern": "^0x[0-9a-f]{64}$"
                }
              },
              "required": [
                "user",
                "nonce",
                "deadline",
                "v",
                "r",
                "s"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "action",
            "signed"
          ],
          "additionalProperties": false
        }
      ]
    }
    Response: intentAckSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "intentId": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{64}$"
        },
        "action": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "openPosition",
                "closePositions",
                "withdrawToCore",
                "registerSessionKey",
                "registerSessionKeyV2",
                "revokeSessionKeys",
                "stake",
                "unstake",
                "claim",
                "distribute"
              ]
            },
            {
              "type": "string",
              "pattern": "^[a-z][A-Za-z0-9]{0,63}$"
            }
          ]
        },
        "state": {
          "type": "string",
          "enum": [
            "queued",
            "prepared",
            "confirmed",
            "failed",
            "expired",
            "cancelled"
          ]
        },
        "queueRevision": {
          "type": "string",
          "pattern": "^(?:0|[1-9][0-9]*)$"
        },
        "eligibleAtMs": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "reason": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "tradingPaused",
                    "marketPaused",
                    "inactiveInstrument",
                    "belowMinimum",
                    "belowMinimumNotional",
                    "leverageTooHigh",
                    "positionTooLarge",
                    "openInterest",
                    "funding",
                    "noOpenPositions",
                    "tokenBalance",
                    "stakedBalance",
                    "sessionKeyLimit",
                    "noDeposit",
                    "noRewards",
                    "alreadyQueued",
                    "tooManyPositions",
                    "accountLimit",
                    "accountRestricted",
                    "notAllowlisted",
                    "termsRequired",
                    "marketHeld",
                    "circuitBreaker",
                    "exposureLimit",
                    "sessionExpired",
                    "unauthorized",
                    "expired",
                    "invalid",
                    "nonceUsed",
                    "belowMinimumWithdrawal",
                    "retryLater",
                    "closeHold",
                    "internalError"
                  ]
                },
                {
                  "type": "string",
                  "pattern": "^[a-z][A-Za-z0-9]{0,63}$"
                }
              ]
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "intentId",
        "action",
        "state",
        "queueRevision"
      ]
    }

    POST /intents/:id/cancel

    Cancel a queued intent with a CancelIntent signature.

    Request: cancelRequestSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "user": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{40}$"
        },
        "deadline": {
          "type": "string",
          "pattern": "^(?:0|[1-9][0-9]*)$"
        },
        "v": {
          "type": "string",
          "enum": [
            "27",
            "28"
          ]
        },
        "r": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{64}$"
        },
        "s": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{64}$"
        }
      },
      "required": [
        "user",
        "deadline",
        "v",
        "r",
        "s"
      ],
      "additionalProperties": false
    }
    Response: cancelResponseSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "intentId": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{64}$"
        },
        "action": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "openPosition",
                "closePositions",
                "withdrawToCore",
                "registerSessionKey",
                "registerSessionKeyV2",
                "revokeSessionKeys",
                "stake",
                "unstake",
                "claim",
                "distribute"
              ]
            },
            {
              "type": "string",
              "pattern": "^[a-z][A-Za-z0-9]{0,63}$"
            }
          ]
        },
        "state": {
          "type": "string",
          "const": "cancelled"
        }
      },
      "required": [
        "intentId",
        "action",
        "state"
      ]
    }

    POST /intents/:id/onward

    Re-sign the Hyperliquid onward leg of a stuck withdrawal.

    Request: onwardRequestSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "nonce": {
          "type": "string",
          "pattern": "^(?:0|[1-9][0-9]*)$"
        },
        "maximumFee": {
          "type": "string",
          "pattern": "^(?:0|[1-9][0-9]*)$"
        },
        "createRecipient": {
          "type": "boolean"
        },
        "signature": {
          "type": "object",
          "properties": {
            "v": {
              "type": "string",
              "enum": [
                "27",
                "28"
              ]
            },
            "r": {
              "type": "string",
              "pattern": "^0x[0-9a-f]{64}$"
            },
            "s": {
              "type": "string",
              "pattern": "^0x[0-9a-f]{64}$"
            }
          },
          "required": [
            "v",
            "r",
            "s"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "nonce",
        "maximumFee",
        "createRecipient",
        "signature"
      ],
      "additionalProperties": false
    }
    Response: onwardResponseSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "intentId": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{64}$"
        },
        "status": {
          "type": "string",
          "enum": [
            "signed",
            "submitted",
            "in_transit",
            "settled",
            "needs_signature",
            "failed"
          ]
        }
      },
      "required": [
        "intentId",
        "status"
      ]
    }

    GET /intents/:id

    State of one intent.

    Response: intentStatusSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "intentId": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{64}$"
        },
        "action": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "openPosition",
                "closePositions",
                "withdrawToCore",
                "registerSessionKey",
                "registerSessionKeyV2",
                "revokeSessionKeys",
                "stake",
                "unstake",
                "claim",
                "distribute"
              ]
            },
            {
              "type": "string",
              "pattern": "^[a-z][A-Za-z0-9]{0,63}$"
            }
          ]
        },
        "state": {
          "type": "string",
          "enum": [
            "queued",
            "prepared",
            "confirmed",
            "failed",
            "expired",
            "cancelled"
          ]
        },
        "outcome": {
          "type": "string",
          "enum": [
            "succeeded",
            "failed",
            "expired",
            "cancelled",
            "unknown"
          ]
        },
        "reason": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "tradingPaused",
                    "marketPaused",
                    "inactiveInstrument",
                    "belowMinimum",
                    "belowMinimumNotional",
                    "leverageTooHigh",
                    "positionTooLarge",
                    "openInterest",
                    "funding",
                    "noOpenPositions",
                    "tokenBalance",
                    "stakedBalance",
                    "sessionKeyLimit",
                    "noDeposit",
                    "noRewards",
                    "alreadyQueued",
                    "tooManyPositions",
                    "accountLimit",
                    "accountRestricted",
                    "notAllowlisted",
                    "termsRequired",
                    "marketHeld",
                    "circuitBreaker",
                    "exposureLimit",
                    "sessionExpired",
                    "unauthorized",
                    "expired",
                    "invalid",
                    "nonceUsed",
                    "belowMinimumWithdrawal",
                    "retryLater",
                    "closeHold",
                    "internalError"
                  ]
                },
                {
                  "type": "string",
                  "pattern": "^[a-z][A-Za-z0-9]{0,63}$"
                }
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "txHash": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^0x[0-9a-f]{64}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "positionId": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^(?:0|[1-9][0-9]*)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "acceptedAtMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "deadline": {
          "type": "string",
          "pattern": "^(?:0|[1-9][0-9]*)$"
        },
        "eligibleAtMs": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "intentId",
        "action",
        "state",
        "acceptedAtMs",
        "deadline"
      ]
    }

    GET /queue-rank/accounts/:addr

    Position of an account in the relayer queue.

    Response: queueRankSchema · JSON Schema
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "queueRevision": {
          "type": "string",
          "pattern": "^(?:0|[1-9][0-9]*)$"
        },
        "entries": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "intentId": {
                "type": "string",
                "pattern": "^0x[0-9a-f]{64}$"
              },
              "position": {
                "type": "string",
                "pattern": "^[1-9][0-9]*$"
              }
            },
            "required": [
              "intentId",
              "position"
            ]
          }
        }
      },
      "required": [
        "ok",
        "entries"
      ]
    }

    Intent states

    An accepted intent moves through these public states; failed, expired and cancelled are final. An idempotent resubmission returns the intent’s real state, including a final one.

    queuedpreparedconfirmedfailedexpiredcancelled

    Reasons

    Rejections and failures carry one of these reasons. Clients should treat an unknown reason as a generic failure.

    tradingPausedmarketPausedinactiveInstrumentbelowMinimumbelowMinimumNotionalleverageTooHighpositionTooLargeopenInterestfundingnoOpenPositionstokenBalancestakedBalancesessionKeyLimitnoDepositnoRewardsalreadyQueuedtooManyPositionsaccountLimitaccountRestrictednotAllowlistedtermsRequiredmarketHeldcircuitBreakerexposureLimitsessionExpiredunauthorizedexpiredinvalidnonceUsedbelowMinimumWithdrawalretryLatercloseHoldinternalError

    Intake errors

    CodeHTTP status
    invalid_intent400
    deadline_expired400
    unauthorized_intent403
    intent_not_found404
    intent_conflict409
    admission_rejected422
    below_minimum_stake422
    below_minimum_withdrawal422
    invalid_onward422
    intake_action_paused422
    rate_limited429
    region_restricted451
    request_failed500

    intent_conflict: nonceUsed, cancelRace, notCancellable, onwardState. invalid_onward: signature, nonceWindow, mismatch.

    Contract errors

    When a call reverts on-chain, the relayer maps the contract’s custom error to a reason and decides whether to retry. Errors marked with a dormant switch can only occur after that defence is switched on.

    Contract errorReasonRelayer policyDormant switch
    InsufficientGasinternalErrorbug
    AlreadySetinvalidterminal
    RenounceDisabledinternalErrorbug
    NotExecutorinternalErrorbug
    NotPauseAuthorityinternalErrorbug
    NotMarketKeeperinternalErrorbug
    NotReconcilerinternalErrorbug
    NotDevFeeRecipientinternalErrorbug
    NotStakinginternalErrorbug
    NotOffHoursKeeperinternalErrorbug
    TradingPausedtradingPausedterminal
    BreakerActivecircuitBreakerrequeueD6
    LpFrozencircuitBreakerrequeueD6
    MarketIsRetiredinactiveInstrumentterminal
    InvalidInstrumentinactiveInstrumentterminal
    LeverageTooLowleverageTooHighterminal
    LeverageTooHighleverageTooHighterminal
    MarginBelowMinimumbelowMinimumterminal
    NotionalBelowMinimumbelowMinimumNotionalterminal
    PositionTooLargepositionTooLargeterminal
    OiCapExceededopenInterestrequeueOnce
    BlockFlowExceededopenInterestrequeueNextBlockD4
    SideExposureExceededexposureLimitterminalD5
    AccountNotionalExceededaccountLimitterminalD7
    TooManyPositionstooManyPositionsterminal
    InsufficientBalancefundingterminal
    InsufficientDebtBalancefundingterminal
    DebtWalkLimitfundingterminal
    PositionNotOpennoOpenPositionsterminal
    NotPositionOwnerunauthorizedterminal
    EmptyIdsinvalidterminal
    TooManyIdsinvalidterminal
    ProfitHoldNotElapsedcloseHoldrequeueD3
    NotLiquidatableinvalidterminal
    DirectCloseDisabledinvalidterminal
    QueueEmptyinvalidterminal
    OracleUnavailablemarketHeldrequeue
    BadBookmarketHeldrequeue
    SpreadTooWidemarketHeldrequeueD2
    PriceDeviationmarketHeldrequeueD1
    RefPriceUnavailablemarketHeldrequeueD1
    NoProxyinternalErrorbug
    ProxyNotActivatedinternalErrorbug
    ExchangeNotActivatedinternalErrorbug
    PrecompileReadFailedretryLaterrequeue
    SweepAlreadyPendinginternalErrorbug
    SweepBelowMinimuminternalErrorbug
    SweepTooSoonretryLaterrequeueNextBlock
    NoPendingSweepinternalErrorbug
    FinalizeTooSoonretryLaterrequeueNextBlock
    SweepNotLandedretryLaterrequeueNextBlock
    ReconcileExceedsUnconfirmedinvalidterminal
    ReconcileExceedsSurplusinvalidterminal
    UnconfirmedExpiredinvalidterminal
    SweepsPendinginternalErrorbug
    WithdrawalBelowMinimumbelowMinimumWithdrawalterminal
    WithdrawalTooLargeinvalidterminal
    ActivationExceedsAmountinvalidterminal
    CoreBalanceInsufficientretryLaterrequeue
    WithdrawOncePerBlockretryLaterrequeueNextBlock
    FeeTooHighinvalidterminal
    ParamOutOfBoundsinvalidterminal
    ZeroAddressinvalidterminal
    AlreadyRetiredinvalidterminal
    CapAboveCeilinginternalErrorbugD8
    AssetAlreadyListedinvalidterminal
    AssetInfoMismatchinvalidterminal
    TooManyInstrumentsinvalidterminal
    PriceOutOfRangeinvalidterminal
    DeferredHooksPendinginvalidterminal
    BreakerDisabledinvalidterminal
    BreakerNotTrippedinvalidterminal
    GuardianTripLimitinvalidterminalD6
    ResetNotAllowedinvalidterminalD6
    DomainMismatchinternalErrorbug
    SzDecimalsTooLargeinternalErrorbug
    NotAuthorizedRelayerinternalErrorbug
    EmptyBatchinternalErrorbug
    BatchTooLargeinternalErrorbug
    SelectorNotAllowedinternalErrorbug
    BatchCallFailedinternalErrorbug
    NotGuardianOrOwnerinternalErrorbug
    UnauthorizedSubmitterinternalErrorbug
    UnauthorizedCallerinternalErrorbug
    InvalidSignatureunauthorizedterminal
    ExpiredDeadlineexpiredterminal
    DeadlineTooFarinvalidterminalD9
    InvalidNoncenonceUsedterminal
    SessionKeyExpiredsessionExpiredterminal
    ZeroAddressKeyinvalidterminal
    KeyIsUserinvalidterminal
    ExpiryInPastinvalidterminal
    ExpiryTooLonginvalidterminalD9
    TooManyKeysinvalidterminal
    BuilderNotApprovedinvalidterminal
    BuilderFeeWithoutBuilderinvalidterminal
    AlreadyRegisteredinvalidterminal
    InvalidReferrerinvalidterminal
    ReferrerAlreadySetinvalidterminal
    NotSessionKeyManagerinternalErrorbug
    NotReferralManagerinternalErrorbug
    ZeroAmountinvalidterminal
    InsufficientStakestakedBalanceterminal
    DirectCallsDisabledinvalidterminal
    NotDistributorinternalErrorbug
    NotExchangeinternalErrorbug
    InvalidMintParamsinvalidterminal
    MintParamsAreFrozeninvalidterminal
    RebateAlreadyActiveinvalidterminal
    RebateUnavailableinvalidterminal
    ExponentTooLargeinternalErrorbug
    FeeRateTooHighinvalidterminal
    NotBuilderGuardianinternalErrorbug
    NotBuilderinternalErrorbug
    TransferRestrictedinternalErrorbug
    NotMinterinternalErrorbug
    NotAuthorizedDeployerinternalErrorbug
    OnlyExchangeinternalErrorbug
    OnlyUserunauthorizedterminal
    ActionNotAllowedinternalErrorbug
    BadDestinationinternalErrorbug
    UsdcRescueForbiddeninvalidterminal
    NativeTransferFailedinvalidterminal
    ECDSAInvalidSignatureunauthorizedterminal
    ECDSAInvalidSignatureLengthunauthorizedterminal
    ECDSAInvalidSignatureSunauthorizedterminal
    ERC20InsufficientBalancetokenBalanceterminal
    ERC20InsufficientAllowanceinternalErrorbug
    ERC20InvalidSenderinternalErrorbug
    ERC20InvalidReceiverinternalErrorbug
    ERC20InvalidApproverinternalErrorbug
    ERC20InvalidSpenderinternalErrorbug
    ERC2612ExpiredSignatureexpiredterminal
    ERC2612InvalidSignerunauthorizedterminal
    InvalidAccountNoncenonceUsedterminal
    OwnableUnauthorizedAccountinternalErrorbug
    OwnableInvalidOwnerinternalErrorbug
    ReentrancyGuardReentrantCallinternalErrorbug
    InvalidInitializationinternalErrorbug
    NotInitializinginternalErrorbug
    UUPSUnauthorizedCallContextinternalErrorbug
    UUPSUnsupportedProxiableUUIDinternalErrorbug
    ERC1967InvalidImplementationinternalErrorbug
    ERC1967NonPayableinternalErrorbug
    AddressEmptyCodeinternalErrorbug
    FailedCallinternalErrorbug
    SafeCastOverflowedUintDowncastinternalErrorbug
    SafeCastOverflowedIntDowncastinternalErrorbug
    SafeCastOverflowedUintToIntinternalErrorbug
    SafeCastOverflowedIntToUintinternalErrorbug
    SafeERC20FailedOperationinternalErrorbug
    InvalidShortStringinternalErrorbug
    StringTooLonginternalErrorbug
    Last updated: