Skip to main content
Once you’ve signed the intent operations, you can submit them to the Orchestrator for execution. Use the /intent-operations endpoint:
Submit Intent
const baseUrl = "https://v1.orchestrator.rhinestone.dev";
const endpoint = `${baseUrl}/intent-operations`;
const apiKey = "YOUR_RHINESTONE_API_KEY";

const payload = {
  signedIntentOp: {
    ...intentOp,
    originSignatures,
    destinationSignature,
  },
};

const res = await fetch(endpoint, {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": apiKey,
    Accept: "application/json",
  },
  body: JSON.stringify(payload, (_, value) =>
    typeof value === "bigint" ? value.toString() : value,
  ),
});

if (!res.ok) {
  const errorBody = await res.text().catch(() => "");
  throw new Error(
    `Request failed: ${res.status} ${res.statusText}${errorBody ? ` - ${errorBody}` : ""}`
  );
}

const data = await res.json();
console.log("Result:", data);
The response includes an operation ID. Use it to track execution status.

Tracking intents

Poll for status and understand the full intent lifecycle.