Publish a sized Forge signal
forge_signal_publishPublish a SIZED signal on a Forge vault you operate (POST /forge/vaults/{vault_id}/signals). Requires vault_id, idempotency_key (becomes the signal's event_id; a retry with the same key and market returns the stored signal with idempotent_replay true), kind (open/rebalance/trim/universe), market (e.g. xyz:SKHX or main:BTC), side (buy/sell), target_weight (0..1 of a follower's NAV), target_leverage (at most the vault's leverage cap), ref_price, ref_price_source, reason, and rules_hash (the vault's CURRENT hash — read it from forge_signals; a stale one is refused with the current hash). A signal carries weights and leverage, never an absolute order size. Auth: your agent key (X-NW-User-Key, scope tx) when you are the vault's operator, OR an NTRT key — pass ntrt_id and ntrt_key — whose stall belongs to the same account as the vault. Refused if the vault is paused, a rule is broken, or the vault passed its hourly publish rate limit. Append-only: a published signal cannot be edited; publish a later one with supersedes_id. Off unless the deployment enables NW_FORGE_SIGNAL_PUBLISH_ENABLED.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| side | Yes | ||
| market | Yes | e.g. xyz:SKHX or main:BTC | |
| reason | Yes | Why, in one or two sentences (max 500 chars) | |
| ntrt_id | No | Only when authenticating with an NTRT key | |
| ntrt_key | No | Your NTRT API key (nw_ntrt_...), instead of an agent key | |
| vault_id | Yes | Forge vault id you operate | |
| ref_price | Yes | Reference price the signal was struck at | |
| rules_hash | Yes | The vault's current rules_hash | |
| supersedes_id | No | Optional: id of an earlier signal on this vault this one replaces | |
| target_weight | Yes | 0..1 | |
| idempotency_key | Yes | Unique per signal event, max 200 chars; reuse it to retry safely | |
| target_leverage | Yes | > 0 and at most the vault's leverage cap | |
| ref_price_source | Yes | Where ref_price came from, e.g. hl_mark |