---
title: "Get OP hook"
method: POST
path: "/op-hook"
tags: ["Routing"]
---

# Get OP hook

`POST /op-hook`

Generates OP hook data required for certain cross-chain routes that involve Optimistic bridge withdrawals with ERC-20 token conversion. When the Compute Route response includes `required_op_hook: true`, you must call this endpoint to obtain the hook payload before generating transaction messages.

Pass the returned hook data to the Generate Transaction endpoint (`POST /v2/fungible/msgs`) in the `signed_op_hook` field after signing it.

## Request body

- object
  - `source_address` string, required — Sender address on the source chain.
  - `source_asset_chain_id` string, required — Source chain ID.
  - `source_asset_denom` string, required — Source asset denomination.
  - `dest_address` string, required — Recipient address on the destination chain.
  - `dest_asset_chain_id` string, required — Destination chain ID.
  - `dest_asset_denom` string, required — Destination asset denomination.

## Response `200`

Successful response

- object
  - `chain_id` string — Chain ID where the hook messages should be executed.
  - `hook` object[] — Array of EVM messages that form the OP hook payload.

## Other responses

- `400` — Bad request — the route does not support OP withdraw.

## Changes

- **2026-04-02** `f731767cc880` — 1 info
  - endpoint added
- **2026-03-25** `8f391fd6e76c` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/initia-labs/apis/router-api/changes/op-hook/post.md)

---

[API](https://skmtc.dev/initia-labs/apis/router-api.md) · [All operations](https://skmtc.dev/initia-labs/apis/router-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/initia-labs/router-api/revisions/d69782928523/schema)
