XChain Platform Action - ADDRESS
This action configures address specific options.
PARAMS
| Name | Type | Description |
|---|---|---|
VERSION |
String | Format Version |
FEE_PREFERENCE |
String | Set preference for how FEE is used |
REQUIRE_MEMO |
String | Require a MEMO on any received SEND |
DISPENSER_PREFERENCE |
String | Set preference for how dispensrs are used |
CONTROLLER |
String | (v1) ACTION_INDEX of a contract whose guard self-gates one ACTION_CLASS of this account. A transfer binding is symmetric; it gates SENDs both outbound (account is SOURCE) and inbound (account is DESTINATION); the guard distinguishes via from/to |
ACTION_CLASS |
String | (v1) Which class to gate: transfer, trade, burn, mint, stake, or the catch-all all (fallback for any class with no specific binding; most-specific-wins) |
COOLDOWN_BLOCKS |
String | (v1) Drop-cooldown committed at bind: blocks before a later UNBIND takes effect |
UNBIND |
String | (v1) 1 drops the live binding for ACTION_CLASS; 0 binds |
MEMO |
String | An optional memo to include |
Formats
Version 0
VERSION|FEE_PREFERENCE|REQUIRE_MEMO|DISPENSER_PREFERENCE|MEMO
Version 1 - Bind/unbind a CONTROLLER for one ACTION_CLASS
VERSION|CONTROLLER|ACTION_CLASS|COOLDOWN_BLOCKS|UNBIND|MEMO- Self-signed; the account gates itself. Append-only, with the same cooldown/unbind semantics as token bindings. See Controller-Bound Tokens.
Examples
ADDRESS|0|1||0
This example sets the address to DESTROY fees
ADDRESS|0|2||0
This example sets the address to DONATE fees
ADDRESS|0||1|
This example sets the address to require a `MEMO` on any received `SEND`
ADDRESS|0|||2|
This example allows anyone to open a dispenser on this address
FEE_PREFERENCE Options
0= Use the default disposition (same effect as omitting the field; treated as donate to protocol development)1=FEEis destroyed, lowering supply2=FEEto donated to protocol development (default)
A community-development option (3) has been discussed but is NOT accepted by
consensus at this time: the indexer’s valid set is {0, 1, 2}
(xchain-indexer/src/actions/address.js validValues), so a 3 indexes
invalid. This list follows the code; do not emit 3.
DISPENSER_PREFERENCE Options
1= Only owner can open dispenser on this address (default)2= Anyone can open dispenser on this address
Regardless of preference, a fresh address (never seen on chain) can have a dispenser opened on it by anyone, and the address’s established origin (the SOURCE of a prior valid dispenser create on it) can always open additional dispensers; see the origin-standing rule in DISPENSER.
Rules
Notes
ADDRACTIONcan be used for shorter reference toADDRESSACTION- Leaving
FEE_PREFERENCEblank in a subsequentADDRESSaction storesNULLin the database, which the indexer reads back as0(donate/default). UnlikeDISPENSER_PREFERENCE, there is no null-guard; the prior preference is not preserved. - Leaving
DISPENSER_PREFERENCEblank in a subsequentADDRESSaction does not clear an existing preference; it preserves the most recent non-blank value
Copyright © 2025–2026 Dankest, LLC
Based on XChain Platform by Dankest, LLC – https://dankest.llc
Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later) with a commercial license available for proprietary use.
You may use, modify, and distribute this material under the terms of the License. See LICENSE and NOTICE for full terms. See the licensing overview.