> For the complete documentation index, see [llms.txt](https://shinkalabs.gitbook.io/hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shinkalabs.gitbook.io/hub/andromeda/guides/future-sign.md).

# Future-Sign triggers

Future-Sign lets you pre-authorise a signature now and have it fire later, automatically, when a condition is met. Andromeda watches the condition, completes the signature when it matches, and (if you have a webhook) notifies you.

{% hint style="info" %}
Future-Sign endpoints require an API key with the `admin` scope. Exact bodies are in the [OpenAPI spec](https://api.andromedainfra.pro/openapi.json).
{% endhint %}

## The pieces

1. **Arm the signature.** `POST /v1/dwallet/future-sign/submit` pre-authorises a signature for a dWallet and a message hash.
2. **Define a trigger.** Register a trigger that says when the signature should complete. Trigger types:
   * **Oracle**: a price condition (read on-chain).
   * **Slot**: a Solana slot is reached.
   * **Event**: an on-chain event the [IDL-aware listener](#the-on-chain-listener) parses.
   * **External webhook**: an HTTP call into Andromeda from your own system.
3. **Andromeda fires it.** When the condition matches, Andromeda calls `POST /v1/dwallet/future-sign/complete/submit` for you and the signature is produced. If you registered a [webhook](/hub/andromeda/guides/webhooks.md), you get a delivery.

## The on-chain listener

Andromeda runs a websocket subscription that parses the canonical Andromeda events and the Anchor self-CPI events emitted by Ika, then routes them to triggers and to per-tenant webhooks. This is what makes the "event" trigger type work and what feeds the on-chain entries in [Webhook events](/hub/andromeda/api-reference/webhook-events.md).

## If the dWallet has a policy

The completion still has to satisfy whatever policy holds the dWallet's authority. Future-Sign pre-authorises *intent*; the policy program still enforces its rule at completion time. So a Future-Sign against a wallet behind [`velocity-guard`](/hub/andromeda/guides/deploy-policy/velocity-guard.md) or [`allowlist-destinations`](/hub/andromeda/guides/deploy-policy/allowlist.md) only completes if the policy allows it then.

## Operational notes

* Use [`Idempotency-Key`](/hub/andromeda/guides/idempotency.md) when arming, so a retry does not arm twice.
* A trigger that never matches simply never fires; clean up stale triggers.
* For "fire on a price move and freeze otherwise", combine Future-Sign (the action) with [`oracle-conditional`](/hub/andromeda/guides/deploy-policy/oracle-conditional.md) (the guard) on the same dWallet.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://shinkalabs.gitbook.io/hub/andromeda/guides/future-sign.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
