Language

Choose a language

/build/rpc / assets / icu

rotateicu

rotateicu "icu_txid" icu_vout "icu_address" unlock_fee_bump "asset_id" ( {"icu_payload":"hex","icu_ctxt_commit":"hex","icu_plain_commit":"hex","icu_visibility":n,"policy_quorum_bps":n,"issuance_cap_units":n,"issuance_cap":"str","icu_compressed":bool,"autofund":bool,"broadcast":bool,"fee_rate":n} ) Rotate ICU governance parameters for an asset (requires unlock fee bump >= 0.5 BTC). Updates icu_payload, icu_visibility, policy_quorum_bps, issuance_cap (units or base units). WARNING: If policy_quorum_bps > 0, quorum workflow required (not handled by this RPC). Arguments: 1. icu_txid (string, required) Current ICU transaction ID 2. icu_vout (numeric, required) Current ICU output index 3. icu_address (string, required) New ICU destination address 4. unlock_fee_bump (numeric or string, required) BTC to add to unlock_fees_base (min 0.5) 5. asset_id (string, required) Asset ID to rotate 6. options (json object, optional) ICU rotation options { "icu_payload": "hex", (string, optional) New ICU governance payload (up to 100 KiB) "icu_ctxt_commit": "hex", (string, optional) 32-byte ciphertext commitment "icu_plain_commit": "hex", (string, optional) 32-byte plaintext commitment "icu_visibility": n, (numeric, optional) ICU visibility (0=public, 1=holder_only) "policy_quorum_bps": n, (numeric, optional) Governance quorum in basis points "issuance_cap_units": n, (numeric, optional) Issuance cap in base units (0=unlimited) "issuance_cap": "str", (string, optional) Issuance cap expressed in asset units (e.g., "50.0"). Overrides issuance_cap_units. "icu_compressed": bool, (boolean, optional, default=false) Use zstd compression for payload "autofund": bool, (boolean, optional, default=true) Automatically fund transaction fees "broadcast": bool, (boolean, optional, default=false) Broadcast after signing "fee_rate": n, (numeric, optional) Fee rate in sat/vB } Result: "hex" (string) Transaction ID if broadcast, otherwise hex Examples: > bitcoin-cli rotateicu "icu_txid" 0 "bc1q..." 0.5 "asset_id" '{"icu_visibility": 1}'

Signature

rotateicu(icu_txid: string, icu_vout: number, icu_address: string, unlock_fee_bump: any, asset_id: string, options?: object) → any

Code samples

curl --user "$RPC_USER:$RPC_PASS" \
  --data-binary '{"jsonrpc":"1.0","id":"docs","method":"rotateicu","params":["\"<icu_txid>\"",0,"\"<icu_address>\"","\"<unlock_fee_bump>\"","\"<asset_id>\"",{}]}' \
  -H 'content-type: text/plain;' \
  http://127.0.0.1:8332/

Parameters

NameTypeReq.Description
icu_txidstringyesCurrent ICU transaction ID
icu_voutnumberyesCurrent ICU output index
icu_addressstringyesNew ICU destination address
unlock_fee_bumpnumber | stringyesBTC to add to unlock_fees_base (min 0.5)
asset_idstringyesAsset ID to rotate
optionsobjectICU rotation options { "icu_payload": "hex", (string, optional) New ICU governance payload (up to 100 KiB) "icu_ctxt_commit": "hex", (string, optional) 32-byte ciphertext commitment "icu_plain_commit": "hex", (string, optional) 32-byte plaintext commitment "icu_visibility": n, (numeric, optional) ICU visibility (0=public, 1=holder_only) "policy_quorum_bps": n, (numeric, optional) Governance quorum in basis points "issuance_cap_units": n, (numeric, optional) Issuance cap in base units (0=unlimited) "issuance_cap": "str", (string, optional) Issuance cap expressed in asset units (e.g., "50.0"). Overrides issuance_cap_units. "icu_compressed": bool, (boolean, optional, default=false) Use zstd compression for payload "autofund": bool, (boolean, optional, default=true) Automatically fund transaction fees "broadcast": bool, (boolean, optional, default=false) Broadcast after signing "fee_rate": n, (numeric, optional) Fee rate in sat/vB }

Result

Type:  any

"hex" (string) Transaction ID if broadcast, otherwise hex

Source: services/core-node/bcore/src/wallet/rpc/assets.cpp:6214

C++ symbol: rotateicu