Transactions
execute-proxy-announced
Execute a proxy call that was announced and has passed its delay.
The delayed-proxy flow: a delegate added with delay > 0 first announces
the call's hash, waits out the delay (during which the real account can
veto), then anyone may dispatch the announced call with this intent. The
inner call is given as an intent op name plus its arguments and must hash
to exactly what was announced. Fails if the delay has not elapsed or no
matching announcement exists.
| Signer | Pallet | Wraps |
|---|---|---|
coldkey | Proxy | Proxy.proxy_announced |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
delegate_ss58 | string | yes | Delegate that made the announcement. |
real_ss58 | string | yes | Account the call executes as (the delegation's grantor). |
inner_op | string | yes | Intent op name of the announced call (see btcli tools for the catalog). |
inner_args | object | yes | Arguments of the announced call, as a JSON object. |
force_proxy_type | string | no | Require the delegation to be exactly this proxy type instead of accepting any type that covers the call. |
Address parameters (--hotkey, --coldkey, --dest, ...) accept a raw ss58
address, an address-book or proxy-book name, or a local wallet/hotkey name.
CLI
Preview with --dry-run (shows fee, effects, and policy result without
submitting), then submit:
btcli tx execute-proxy-announced \
--delegate <ss58|name> \
--real <ss58|name> \
--inner-op <value> \
--inner-args '<json>' --dry-run
btcli tx execute-proxy-announced \
--delegate <ss58|name> \
--real <ss58|name> \
--inner-op <value> \
--inner-args '<json>' -w my_coldkeyPython
import bittensor as sub
from bittensor.wallet import Wallet
wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.ExecuteProxyAnnounced(delegate_ss58="5F...", real_ss58="5F...", inner_op="...", inner_args={...})
async with sub.Client("finney") as client:
plan = await client.plan(intent, wallet) # fee, effects, policy — no submission
result = await client.execute(intent, wallet)
if not result.success:
print(result.error.code, result.error.remediation)Or build it by op name, as an agent would:
await client.execute_tool("execute_proxy_announced", {...}, wallet)