> For the complete documentation index, see [llms.txt](https://hub.bsvblockchain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hub.bsvblockchain.org/brc/wallet/0207.md).

# 1Color Wallet Module

Ty Everett (<ty@projectbabbage.com>), David Case (<dcase@opl.dev>)

Contributors: John Calhoun, Bridget Doran, Darren Kellenschwiler.

## Abstract

This specification defines the canonical `color` wallet module for fungible assets under [1Color (BRC-162)](/brc/tokens/0162.md), including the [BRC-161](/brc/tokens/0161.md) encoding of the same token model. It combines counterparty-derived custody, per-asset baskets, overlay-verified admission, amount-aware spending consent, input selection, change, issuance, authority operations, burns and composable multi-asset swaps. It supports arbitrary foreign scripts and both complete and partially signed transactions through the existing [BRC-100](/brc/wallet/0100.md) interface.

P2PKH custody and overlay evidence are the baseline. Required processing profiles in the BRC-162 payload can add contract-resource rules or specify alternative custody and evidence procedures under the bounded extension contract below. This BRC defines that contract, not any asset-specific business meaning. [BRC-209](/brc/wallet/0209.md) defines the explicitly declared minimal resource mode below.

The 1Color name and its exclusive conformance use follow BRC-162. Implementers may use independent product branding; all `color` protocol, basket, label, topic, lookup and capability identifiers below remain unchanged.

MUST, MUST NOT, SHOULD and MAY express requirements for conforming implementations. A wallet without this module MUST reject its reserved identifiers. Module support does not reduce the mandatory core wallet interface or authorize an operation.

## Asset identity, amounts and custody

An `assetId` is the canonical BRC-162 API token ID: a lowercase display-order transaction ID, an underscore, and a decimal deploy uint32 output index without leading zeroes, for example `<64 hex characters>_0`. Its binary prefix representation, including the legacy nonzero-index form, is exactly BRC-162's. The wallet MUST identify assets by this issuance outpoint, never by symbol, icon, decimals or a caller label. BRC-161 JSON and BRC-162 binary outputs with the same ID represent the same asset; BRC-162's binary-prefix precedence applies.

Amounts MUST be processed as exact integers in the domain specified by the applicable token encoding. BRC-162 value outputs carry 1 through `2^64 - 1` units; zero designates authority, not an empty value balance. JSON quantities in this module's metadata MUST be decimal strings without leading zeroes. Sums MUST use exact arithmetic that cannot overflow when adding multiple maximum-sized inputs. Deploy `dec` affects display only; there is no conversion between token units and satoshis, and no floating-point accounting.

Baseline wallet custody requires an admissible BRC-162 prefix, with its optional payload, followed by an ordinary P2PKH remainder controlled by the module-derived wallet key. BRC-161 equivalents MAY be received and spent in the same managed baskets; the wallet MUST recognize and validate both encodings. New wallet-generated issuance, transfer and change outputs MUST use BRC-162. Arbitrary valid scripts remain supported for foreign inputs and destinations; the custody restriction determines which outputs the wallet can automatically manage without a supported contract-resource profile. Such a profile may establish a protected signing role without establishing unrestricted ownership of the output's full amount.

## Required processing profiles

### Discovery and enforcement

Before authorizing a signature, selecting or crediting an output, computing an available balance, or counting foreign consideration, the wallet MUST authenticate the asset's original deploy and read its BRC-162 `req` map. It MUST also read the applicable binary payload of every involved source and destination. BRC-161 JSON carries no processing-profile payload: a legacy deploy has no required profiles, and a JSON output supplies no `ext` state. Extra JSON members cannot change these facts. Requirements inherited from a BRC-162 deploy still apply to later JSON outputs. Binary-prefix precedence applies before choosing an encoding. A cached descriptor is usable only when bound to the verified deploy outpoint and identical bytes. Caller metadata, an overlay's base-admission result, or an omitted output payload cannot substitute for this step. New deployments use the proposed deploy's requirements until their final asset ID is fixed.

An absent or zero-byte payload has no defined attributes. A nonzero payload that is not a strictly valid DAG-CBOR map likewise has no defined attributes under BRC-162; the wallet MUST NOT recover partial `req` or `ext` data from invalid, noncanonical or duplicate-key encodings. An opaque deploy payload declares an empty `req` map. A later opaque output still inherits and must satisfy its authenticated deploy's requirements, treating that output's `ext` as absent. A required profile may reject that absence under its own state rules. In a valid payload map, malformed `req` or `ext`, or a non-deploy `req` that differs from the deploy, MUST fail the affected operation. Advisory keys outside `req` and `ext` remain ignorable. `ext` MUST be a map with valid profile identifiers; its values are interpreted only by the applicable required profiles. These wallet-processing rules do not change BRC-161/162 base validity.

The wallet MUST enforce every required profile's exact version and parameters through trusted implementation code. It MUST validate relevant antecedent state and transition invariants using that profile's authenticated history, checkpoint or attestation rules. Base-indexer admission alone cannot establish those facts. This does not require another wallet's historical local consent records. Unsupported versions, unavailable evidence, incompatible requirements or inability to establish a required fact MUST fail before signing or mutation of credited balances. It MUST NOT partially apply a requirement set, fall back to baseline handling, or use a generic protocol grant to bypass it. A profile identifier does not authorize automatic code installation or establish a trusted service. Support is chosen by the wallet; authority to perform an operation still comes from the user.

Requirements remain attached to the asset across transfers and encoding changes. A required profile MUST specify validation of its `ext` state, including absence, initialization, each transition, and any authorized removal of that state. Removing state bytes cannot remove the asset's immutable requirements. Unknown advisory data cannot demand privileges or weaken required checks. Wallets may display an unsupported asset as unverified information, but MUST NOT represent it as a validated holding, available balance or accepted consideration.

### Profile contract and common guarantees

A required profile MUST define deterministic rules for its exact version and parameters: applicable operations; input/output and state recognition; necessary evidence and its trust assumptions; protected signing roles; permitted state transitions; authorization facts; and failure behavior. It MUST distinguish validated facts from application assertions and unresolved conditions. A profile that adds restrictions applies alongside all other requirements. Conflicting rules fail rather than selecting the most permissive interpretation.

A profile may explicitly replace the baseline **custody recognition** or **overlay evidence and submission** procedure. It MUST identify the replaced procedure and establish the corresponding facts: authenticated source and asset lineage, current spendability under an accepted evidence policy, transaction admission and completion, or the actual control and limitations of a signing role. All other BRC-207 rules continue to apply. In those two cases, references below to P2PKH ownership or overlay lookup/admission/submission mean the profile's specified replacement for the affected operation. Absence of a replacement means the baseline procedure is mandatory. The attested-admission profile below is one explicit replacement; a caller's undeclared "no overlay" or "identity" flag has no meaning. A replacement must address freshness, conflicts, unavailability, disagreement and settlement. Historical admission cannot be presented as current global unspentness: offline acceptance is instead a declared, user-authorized evidence and risk policy. Throughout this BRC, including selection, netting, inventory, balances and internalization, baseline overlay requirements yield only to the exact replacement selected by `req`.

Except for the resource-only handling explicitly defined below, profiles MUST NOT waive BRC-161/162 identity, amount, supply or authority rules. Profiles MUST NOT waive actual consensus script validation, key-namespace isolation, exact signature commitment analysis, user authorization, reservation/exposure tracking, or the processor coordination required below before any non-final signature release. They MUST NOT claim that off-chain policy changes Bitcoin consensus or retracts a released signature. Their guarantees and assumptions must be supplied to wallet policy and display. Where several profiles replace the same procedure, the wallet MUST establish that their procedures and resulting facts agree, or fail.

Additional evidence can use optional `profileData` in an action plan, signature envelope or receipt instruction. It is a JSON object keyed by required profile identifier. Each entry is a map from the involved canonical asset ID (or `ISSUE` for an unresolved deploy) to data whose schema is defined by that asset's exact profile version. Extra profile or asset identifiers, duplicate members or schema violations MUST fail. This scoping supports multiple assets using different versions or parameters of the same profile in one action. The profile MUST bind evidence to the relevant asset, outpoints, state, operation and transaction context; caller data is not itself proof. Wallet-fetched evidence is subject to the same checks. Message and receipt bounds follow the applicable transport rules below. This field does not change the meaning of `tx` or relax the BRC-176 `tokenProofs` transport rules.

### Attested admission and offline token graphs

This section defines the optional required profile `https://brc.dev/207/attested`, version `1`. An authenticated BRC-162 deploy MUST select it before these rules replace baseline current-overlay checks for that asset. Supporting ordinary BRC-207 does not by itself support this profile. An undeclared asset, including a legacy JSON deploy, retains baseline handling. This is a conserved-token profile, not BRC-209's resource-only mode; those two modes MUST NOT be combined in one asset's `req`. A transaction may combine separately declared attested assets, BRC-209 resources and baseline assets; each leg retains its own rules.

Its `params` is exactly an object with these optional members (unknown members fail): `trustMode`, one of `any`, `same`, `all`, `identity` (default `any`); `identityKey`, a valid lowercase compressed secp256k1 key, required exactly in `identity` mode; and `evidenceProfile`, a profile URI (absent selects the default construction below). An empty object selects the defaults. `null` is invalid. This profile defines no `ext` state; its own `ext` entry MUST be absent.

For example, the following DAG-CBOR payload is shown as JSON:

```json
{"req":{"https://brc.dev/207/attested":{"version":1,"params":{"trustMode":"any"}}}}
```

The declaration permits independently authenticated historical admission anchors plus local verification of all intervening token transitions. It replaces live overlay admission/spendability as a prerequisite to signing, receipt acceptance, selection and onward spending for these IDs. It does not assert that an offline anchor or descendant remains globally unspent. Acceptance explicitly assumes the configured authority and offline-conflict risk; Bitcoin sources/scripts, token quantities, supply, authority, required companion profiles, consent and reservations remain mandatory. No claim of confirmed or overlay-settled value may be inferred from this acceptance.

#### Trusted identities and policy snapshots

For list-based modes, take an atomic snapshot of the user's selected [BRC-189](/brc/wallet/0189.md#11-user-selected-trust-and-identity-interpretation) Trusted Entities List: the distinct valid `identityKey` values of `trustedCertifiers` in that wallet/profile. This profile explicitly assigns those entities authority for this admission purpose when the user enables the profile's offline policy. The wallet MUST disclose that coupling and obtain consent; an application's supplied list, website or certificate does not modify it. BRC-189's certificate weights and `trustLevel` threshold do not apply to this admission rule.

For one asset graph in one decision, let each terminal anchor's signer set be the identities with valid statements for that exact anchor:

| Mode       | Required coverage                                                                                                                                                     |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `any`      | Every anchor has at least one signer in the snapshot; different anchors may use different entities.                                                                   |
| `same`     | At least one identity in the snapshot signs **every** anchor. This is single-authority consistency across the graph, not a requirement that every listed entity sign. |
| `all`      | Every identity in the snapshot signs every anchor. This is all-entities unanimity.                                                                                    |
| `identity` | The deploy's exact `identityKey` signs every anchor, whether or not it is in the local list. No list-membership or weighted-threshold test is made.                   |

An empty snapshot fails all list-based modes; `all` must not succeed vacuously. Do not count signatures from derived child keys as separate entities. For mixed assets, apply each asset's own descriptor and coverage test; authority for one asset is not authority for another. `identity` bypasses only list selection, not signature verification, user consent or other required profiles. The fixed key cannot silently rotate; a future declared profile may specify authenticated rotation semantics. The immutable descriptor cannot be overwritten by metadata.

Capture the list/configuration version with the decision and recheck it before committing or releasing a signature. A concurrent change requires reevaluation. New spends and receipts use the current snapshot; loss of required trust or evidence makes retained outputs unavailable/restricted pending reevaluation. Keep prior decisions and released exposure for audit and settlement; a trust change neither undoes a Bitcoin spend nor authorizes reclamation of `never` payments. Wallet-specific limits may restrict age, amount, chain depth or counterparties further, with explicit errors; they cannot silently weaken the declared coverage or another required profile.

#### Default attestation statement and signature

Use [BRC-175](/brc/payments/0175.md)'s compact admission message:

```
1color-admit:v1:<topic>:<txid>:<outputs>
```

`topic` is independently derived as `tm_color_<assetId>`. `txid` is the 64-character lowercase display-order TXID. `outputs` is a nonempty, unique, ascending list of uint32 output indices in canonical decimal, joined by commas. There are no spaces or newline. Each named output MUST exist and carry this asset. An example of the exact message shape is:

```
1color-admit:v1:tm_color_c7d0f61946bc8bde6c01219c67bb99cbf2f89a39bcaea9c2ecf67c54224edb4f_0:05fabadb4a03eb7d5e54713824a483161a82ecc7061b124e99a13e9778131931:0,2
```

A JSON attestation is exactly `{txid, outputs, signer, signature}`: `outputs` is an array of integer indices in that same order, `signer` is the authority's lowercase compressed identity key, and `signature` is lowercase strict-DER ECDSA hex with no transaction sighash byte. Both valid low-S and high-S forms MUST be accepted; duplicate signatures do not add coverage or authority.

The signing protocol is exactly `[2, "color admission attestation"]`, `keyID` exactly `"1"`, and counterparty `"anyone"`, using the authority's ordinary BRC-42/43 identity. Sign SHA-256 of the UTF-8 message **once**, as BRC-3 `createSignature({data, protocolID, keyID, counterparty:"anyone"})` does. The invoice is `2-color admission attestation-1`. A verifier publicly derives the authority's child using the anyone private scalar 1 and that invoice, or uses BRC-3 `verifySignature` with this tuple, `counterparty:signer` and `forSelf:false` in an anyone verifier. It MUST NOT use its own ordinary child, the bare identity key or a caller-supplied child. This is an application attestation protocol, not a `p color` or BRC-29 transaction-signing key. Signers SHOULD use RFC 6979 nonces. Unknown/duplicate JSON fields, noncanonical identifiers, invalid points or signatures fail.

The authority asserts that the exact named outputs were validly admitted to this asset's topic under BRC-161/162 quantity, lineage and authority rules. It MUST validate those facts before signing. The asset ID commits to its original deploy and immutable `req` through the deploy TXID; the attested TXID commits to the outputs. Verify both sets of bytes. This statement checkpoints token validity through those outputs, not Bitcoin inclusion, current unspentness, future acceptance, recipient identity or companion-profile state unless that profile explicitly accepts this evidence. An omitted output is not attested; the list is not an assertion that every other output was rejected.

The default message has no timestamp or expiry. It makes a historical claim without an age guarantee. A wallet may limit retention or offline exposure, but MUST NOT describe a locally recorded first-seen time as a signed issuance time. A profile needing authenticated age, network-domain separation or revocation MUST declare a replacement with those semantics. Bitcoin evidence always has to match the wallet's actual chain; a signature alone establishes no chain membership. Invalid or known contradictory evidence cannot be ignored to manufacture coverage.

BRC-175 carries these signatures in bundles and defines the optional BRC-22 response fields. Other carriers or lookup query forms MAY carry them too; the BRC-24 `output-list` shape is unchanged. The signer need not be the contacted host. No endpoint or supplied signer identity imports trust or executable code.

#### Evidence carrier and complete token frontier

For each resolved ID, default evidence is supplied under `profileData["https://brc.dev/207/attested"][assetId]` as exactly: `{declarationTx, transactions, attestations}` and optional `submissions` and `lifecycles`. `declarationTx` is lowercase raw transaction hex matching the asset ID and original binary deploy at output zero; decode and authenticate its `req` before selecting policy. `transactions` is a topologically ordered array of distinct lowercase raw transaction hex strings containing the token history/source bodies needed below. `attestations` is an array of the objects defined above. Different signers may attest the same TXID; deduplicate coverage by identity and exact outpoint, not TXID alone. Hex must decode to exactly one complete transaction. No URLs, executable material or TXID-only substitutes are allowed in these arrays. The ordinary action/receipt `tx` remains BRC-95 Atomic BEEF.

`submissions`, if present, is an array of exact `{txid, offChainValues}` objects with unique canonical TXIDs and lowercase even-length hex for the opaque BRC-22 off-chain bytes for **this asset topic**. A BRC-175 adapter maps its submission entries here. Authenticate required contents through the applicable profiles and bind them to their transactions; this field cannot grant trust. The wallet MUST possess and persist all data needed to submit the tip and every unattested ancestor without the original sender. For the default profile alone, empty off-chain bytes suffice and may be synthesized. Companion profiles may require nonempty caller-supplied data; absence then fails acceptance. Newly constructed transactions acquire their submission entry after their TXID is fixed. `lifecycles` is an array of BRC-177 portable lifecycle objects for every unresolved protected root in the delivered graph. Verify and persist them under BRC-177; forward them unchanged when constructing descendants. Unknown non-protected upstream disposition is a disclosed risk, not a non-reclamation promise.

Verify the complete token graph for **each involved asset**, separately from Bitcoin/SPV validation:

1. Start with every token input whose validity the action needs, or each requested receipt output. Reconstruct TXIDs, outpoints, token ID/role, amounts and scripts from actual source bytes. An attestation cannot invent an output or rename an asset. Fully signed parent bytes are required before signing a child.
2. At an output with qualifying attestation coverage, check its source bytes, declaration binding and role; it is a terminal validity anchor. Otherwise expand its producing transaction and recursively validate **all** same-asset token inputs, including authority inputs. Apply the full token transition rules to the transaction, not just the output selected by the caller.
3. Every same-asset path MUST reach a qualifying attested anchor. A mined token parent alone is not a token-validity anchor. A missing parent, unanchored deploy, invalid transition, duplicate spend or conflicting representation fails. No same-asset branch may be omitted merely because another input supplies enough nominal quantity. Anchors may occur at different depths. For `same`/`all`, evaluate coverage across the entire resulting frontier, not per branch alone. Memoize shared ancestors: revisiting one transaction in a diamond-shaped DAG is valid. Two distinct graph transactions consuming the same outpoint are not.
4. Authenticate and enforce all other required profiles at every relevant state boundary. An attestation is not evidence of their state transitions unless their exact contracts say so. A known incompatible spend outside the validated graph, established contradictory claim, invalid Bitcoin source or failed companion rule defeats acceptance. Consuming an anchor in this very graph is expected and is not such a conflict. Picking a favorable signer is not conflict resolution. No universal online check is required by this default profile, but known contradictory facts cannot be ignored.
5. Independently validate ordinary Bitcoin sources, scripts, satoshis, fees and [BRC-67](/brc/transactions/0067.md) / BEEF evidence for **all Bitcoin inputs**. The analogous recursion stops at accepted chain proofs for Bitcoin and at accepted authority signatures for token validity. A token attestation is not a Merkle proof. Non-token funding inputs need Bitcoin evidence, not token lineage. Reject cycles, inconsistent duplicate bodies and unsupported bounds.

For a new `ISSUE` deployment, its action-plan leaf is exactly `{transactions:[],attestations:[]}`: the proposed deploy supplies its declaration. Issuance may be constructed and signed under ordinary issuance authorization; it is not credited or used as a token-validity anchor until the completed deploy has the required attestation coverage. ISSUE receipt instructions preserve the original key tuple, but their profile evidence uses the resolved asset ID and full declaration bytes. A transfer cannot exploit ISSUE to omit ancestry.

Wallet-held evidence may be reused only after the same source, coverage and trust checks; request data must identify the required profile and asset. The caller may supply complete evidence through this carrier in action plans, signature envelopes and receipts. This is **not** a shortened BRC-176 packet: BRC-176 retains its own completeness rules. Ordinary `tokenProofs` cannot waive current admission for undeclared assets. Optional transport compression or content-addressed storage is implementation-specific and cannot alter verified bytes.

This profile's `customInstructions` strings use the same 16 MiB per-string and aggregate limit as BRC-209, measured in actual UTF-8 bytes after JSON/hex encoding. Bound before allocation, authenticate the declaration before applying the exception, and return explicit errors for lower host limits, missing evidence or excessive work. No partial balances or silently truncated graph may result.

#### Offline acceptance, balances and settlement

After complete consensus-final script validation, authenticated control, graph validation and user-authorized offline policy, the wallet MAY internalize and credit a receipt before broadcasting or overlay admission. It MAY select and sign its descendants online or offline under the same rules. `createAction` may chain validated staged parent outputs without first calling internalization for its own output. Cross-wallet receipt independently validates and durably records the received graph; one wallet's policy/grant is not another's consent. Incomplete or consensus-non-final subjects remain pending, never accepted receipts.

An unreserved accepted output uses `spendable:true`, `color_state_available` and the additional wallet-authored tag `color_offline` until actual current overlay admission is verified. Its units contribute to the existing available balance under this asset's declared policy. The wallet MUST distinguish deferred and settled portions to the user; a scalar balance means locally authorized spending capacity, not guaranteed settlement. Inventory without tags and balance queries alone do not attest settlement. A reserved parent and its child MUST never both count as available. Reserved, restricted and pending tags retain precedence; caller tags cannot create or erase `color_offline`.

Acceptance requires authorization for the complete unresolved dependency and settlement risk, including applicable expiry/reclaim policies. Wallets may use continuing grants and risk limits. A finite ancestor can invalidate downstream payments; missing lifecycle evidence cannot be described as `never`. Known external conflicts or lost trust make affected holdings unavailable, while preserving released signatures and all unaffected holdings. Local accounting correction cannot retract payments or reverse delivered goods.

Internalization records acceptance; it does not itself broadcast. The user's policy may authorize subsequent settlement by the wallet or receiving application. On an explicit online processing request, reconcile and process all missing ancestors in topological order and submit required asset topics under each applicable profile. Before publishing a new child, establish actual acceptance of its required ancestors; a dependency-aware processor may accept a package, but package submission alone is not acceptance. Failure of an ancestor prevents new child publication. Already published members stay published; retain per-TXID and per-asset pending/error state, retry exact bytes idempotently and remove `color_offline` only after the actual admission check succeeds. A profile may define another settlement procedure through the replacement contract below.

Normal BRC-177 finite or `never` batch lifecycles, DSAP, exact signature coverage, arbitrary-script checks and non-final processor coordination still apply. Satoshi prefunding must already be available when disconnected; neither an attestation nor a batch workspace grants access to an unreachable storage provider. Authoritative graph/reservation/exposure state MUST be durable before signed handoff; a planning lease is not the lifetime of a released payment.

#### Explicit future replacement

If `params.evidenceProfile` is present, the same deploy `req` MUST also contain that exact different identifier with its exact supported descriptor. That profile explicitly supplies the evidence schema, signature/authority selection, anchoring/graph validation, freshness, admission, balance and settlement semantics in place of this section's default construction. It MUST name each replaced procedure and define every affected fact and failure outcome; unspecified procedures keep their defaults. Trust-mode and identity parameters above MUST be absent with `evidenceProfile`, avoiding two competing authority selectors. Use the replacement's own asset-scoped `profileData` carrier; this profile's leaf is absent in that case. Unsupported replacement, cycles of delegation, incompatible companion requirements or ambiguous precedence fail closed.

This explicit declaration allows later specifications to use other signatures, quorums, trust roots, checkpoints or offline settlement models without changing the generic wallet methods or default construction. It does not authorize code installation, arbitrary runtime override, or weakening common Bitcoin, amount, authority, consent, exposure and non-final coordination guarantees. Other profiles may independently replace baseline procedures through the common contract; using this default profile is not mandatory for future designs.

### Minimal resource mode

[BRC-209](/brc/wallet/0209.md) is the explicit exception for assets whose authenticated original declaration selects its single minimal resource mode. Only for those IDs, it replaces baseline token lineage, overlay, amount/supply/authority validation and accounting with declaration authentication and resource-scoped handling. It defines the `resource` plan operation, restricted custody and larger receipt-evidence limit. Throughout this BRC, baseline admission, selection, netting, token-operation and receipt requirements are subject to those exact replacements. This does not change BRC-161/162 base token validity or permit the same exceptions for any other ID.

All other required profiles remain enforceable. Common Bitcoin evidence and script checks, satoshi authorization, key isolation, signature commitments, resource consent, reservations and non-final processor coordination remain mandatory. Supporting this module does not require supporting BRC-209; an unsupported required profile fails. Ordinary profiles cannot use this exception without the authenticated BRC-209 declaration.

### Contract resources and authorization

A supported profile may recognize a module-derived key in an arbitrary locking script and identify the resource and signing role it protects. It MUST verify that role against authenticated script bytes and the actual execution context; the presence of a public key or caller-provided role name alone is insufficient. Existing source keys retain their original derivation tuples; successor keys follow their own authenticated remittance and profile rules. The profile MUST describe competing, joint, conditional and time-limited control where present. A signing role does not by itself establish that the wallet owns, can freely spend, or will receive the entire token amount.

For every use of a protected role, the wallet MUST obtain authorization for the validated resource effects, including exercise, state updates, delegation, encumbrance or loss of control, even when token quantities and satoshi net debit do not change. The facts include the asset and affected outpoints, exact input and output states/scripts, role being exercised, and any conditions on the result. Profile-specific operation names and claims require profile validation; the base plan's amount/authority operations remain required independently, except for the declared BRC-209 resource operation.

Wallets MAY implement continuing grants for arbitrary application-directed updates to named resources or roles. Narrower grants MUST be checked against facts the wallet can establish. Unsupported distinctions cannot be promised by a UI or inferred from application descriptions. A grant to change arbitrary resource state does not silently authorize token debits, burns, authority changes or satoshi spending outside the granted scopes. Generic application keys outside this namespace retain their ordinary protocol-permission semantics. Neither profile support nor disclosure alone constitutes user consent.

Contract resources belong in the existing per-asset value or authority basket, with their verified control and state recorded separately. An admitted, unreserved resource not eligible for baseline automatic selection MUST use `spendable:false` and the wallet-authored tag `color_state_restricted` in inventory. Reserved or pending status takes precedence. It contributes no available balance and MUST NOT be selected, merged, split or converted into ordinary change unless the profile establishes eligibility and the applicable authorization allows it. Explicitly selecting a restricted resource requires the profile's operation checks; it does not make the resource foreign. A profile may establish full, unconditional control and amount fungibility for eligible outputs, which can then use normal balance and selection rules. Mere key participation cannot do so.

Wallet-generated successors MUST preserve required profile state or apply a validated, authorized transition. Input/output position, covenant state and signature constraints remain binding. Missing unlocking material may remain pending under the existing two-phase flow only when the wallet can already validate the requested signing context and authorized effects. Neither this extension contract nor a profile grants access to another module's private keys.

## Namespace and counterparty derivation

The logical derivation identifier is:

```
p color <assetId | ISSUE> <derivationPrefix> <derivationSuffix>
```

The prefix distinguishes a payment or issuance and the suffix distinguishes each output, as in [BRC-29](/brc/payments/0029.md). Exact remittance strings MUST be preserved, even when they contain base64. They MUST be nonempty strict UTF-8, without whitespace, and SHOULD be freshly generated. An application origin, transaction, amount, basket or permission grant MUST NOT silently alter keys.

For interoperability with [BRC-43](/brc/key-derivation/0043.md)'s lowercase alphanumeric protocol grammar, the wire representation is defined as follows:

* `assetTag` is the asset ID's 64 lowercase txid hex characters, `v`, and its canonical decimal output index, or the literal `issue` for `ISSUE`.
* `prefixTag` and `suffixTag` are lowercase hex encodings of the **UTF-8 bytes of the exact remittance strings**, not hex encodings of decoded base64 data.
* `protocolID` is `[2, "p color " + assetTag + " " + prefixTag + " " + suffixTag]`.
* `keyID` is the fixed string `color`.
* The BRC-42 invoice is `2-<complete protocol name>-color`.

The complete protocol name MUST satisfy BRC-43's 280-character bound. Invalid or oversized identifiers MUST fail before key derivation; truncation, case folding of remittance strings and alternate wire aliases are prohibited. For example, `ISSUE`, prefix `AQ==`, suffix `Ag==` encodes as protocol name `p color issue 41513d3d 41673d3d`. The logical form above is not a second wire spelling. This encoding introduces no exception to BRC-43 normalization.

Derivation follows BRC-42's same sender/recipient counterparty relationship used by the TypeScript Wallet Toolbox's [BRC-29 script template](https://github.com/bsv-blockchain/wallet-toolbox/blob/master/src/utility/ScriptTemplateBRC29.ts): the sender derives the recipient's child public key using the recipient identity, and the recipient derives its child private key using the sender identity. `getPublicKey.forSelf` MUST select the intended owner's child. `self`, `anyone` and compressed public-key counterparties retain their BRC-100 meanings. Receipt metadata MUST represent `anyone` by the compressed public key for private key 1. Ordinary and privileged root selection retain their meanings and authorization; public derivation from an ordinary identity cannot reproduce a privileged key.

A deploy output uses `ISSUE` because its own transaction ID does not yet exist. That derivation remains its spend key after issuance: finalizing the asset ID MUST NOT rederive the deploy's key. Subsequent outputs use the known asset ID. A wallet MUST store the exact original tuple for every managed output, including legacy-encoding inputs and authority outputs.

### Baskets and dispatch

The logical baskets are `p color <assetId>` and `p color <assetId>-AUTHORITY`. Their BRC-100-compatible wire names are:

```
p color <assetTag>
p color <assetTag> authority
```

There is one value basket and one authority basket per asset, never a global Colored Tokens balance basket. `issue` is not a stored basket. After a deploy transaction has its fixed, fully signed transaction ID, the wallet MUST assign its derived asset basket, or authority basket when its amount is zero. Provisional issuance records MUST remain pending until that ID is final. Authority output counts and capabilities MUST NOT be presented as fungible value amounts.

The `color` scheme is defined in [BRC-98](/brc/wallet/0098.md) protocol, [BRC-99](/brc/wallet/0099.md) basket, and [BRC-111](/brc/wallet/0111.md) action-label namespaces. Labels carry the action plan below; they do not change derivation. The wallet MUST dispatch these identifiers to trusted module code before generic permission defaults. Application code cannot install its own handler or bypass custody by renaming baskets, deleting metadata, choosing an originator, or obtaining a generic signing grant. Reads and organizational operations use module-aware permissions; relinquishing tracking does not release protected keys.

`getPublicKey` and `verifySignature` retain their normal public semantics. `createSignature` accepts only the transaction request below. Encryption, decryption, HMAC and linkage operations in this protocol MUST be rejected. Protected keys and root linkages MUST NOT be exposed through auxiliary methods. BRC-29 satoshi keys remain separate and are signed only by the normal wallet transaction path.

### Asset discovery and balance queries

The module MUST support these read-only `listOutputs` views:

| Basket selector                        | Meaning                                                                                                   |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `p color assets`                       | Inventory across this root's per-asset value and authority baskets and the pending records defined below. |
| `p color balance <assetTag>`           | Available token units in the asset's value basket.                                                        |
| `p color balance <assetTag> authority` | Number of available authority outputs in the asset's authority basket.                                    |

These selectors are queries, not storage baskets. They MUST NOT be accepted as output destinations, internalization baskets or relinquishment targets. Coins remain in their per-asset baskets. The `assets` view follows the aggregate-query pattern used by [BTMS asset discovery](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/wallet/btms/src/BTMS.ts), without requiring a shared storage basket or application-maintained asset list.

#### Inventory

`p color assets` returns ordinary BRC-100 output records for actual outpoints, not fabricated asset-summary UTXOs. `totalOutputs` counts matching visible output records, not distinct assets or token units. With `include: "locking scripts"`, applications can decode BRC-161/162 scripts, resolve deploy IDs from their outpoints, and deduplicate by canonical asset ID. Authority-only assets MUST appear; zero authority amount is not a reason to discard them. Identity and quantities come from validated records and scripts, not application tags or symbols. There is no one-satoshi filter.

The inventory includes admitted, unspent managed value and authority outputs, including reserved outputs. It also includes wallet-created, fully signed outputs with fixed transaction IDs that the wallet has verified it controls but has not yet credited because consensus finality, submission or overlay admission is pending. These pending records remain prospective, outside spendable balances. Supported contract resources are included with their restricted state as defined above. Unsigned provisional IDs, unverified incoming messages, spent outputs, unmanaged foreign scripts and legacy burn records MUST NOT be exposed as held value or authority. A fully signed pending transaction that consumes a listed source leaves that source reserved until completion or conflict is established; source and prospective change MUST NOT both count toward available balance.

For this explicitly defined module inventory view, BRC-100 `spendable` is a boolean: true only for locally available, admitted, unreserved outputs under the wallet's accepted state policy; false for reserved, pending or restricted records. When `includeTags:true`, every record MUST carry exactly one wallet-authored state tag: `color_state_available`, `color_state_reserved`, `color_state_pending`, or `color_state_restricted`. Applications cannot assign or overwrite these state tags. A `spendable:false` record is discovery information, never permission to spend. Normal authorization still refreshes source and overlay checks. Inventory is a wallet-state snapshot, not a promise that an outpoint will remain unspent.

The view MUST honor ordinary tag filters, `include` options, `limit`, `offset` and their bounds. Filtered state tags are evaluated against the authoritative state. Records are ordered by canonical txid and then numeric output index, ascending for nonnegative offsets and descending for negative offsets under BRC-100's offset convention. Each call's count and page use one coherent snapshot. Separate calls need not share a snapshot; callers refreshing a changing inventory must reconcile outpoints rather than count repeated records as additional value. Implementations MUST report an explicit error instead of silently truncating a requested result at a private scan limit.

Access requires module-aware read authorization for the inventory scope. Only records covered by that authorization may contribute to either the page or its count; neither may leak other holdings. Restricted authorized views are scoped inventories, not claims about the wallet's complete holdings. `seekPermission` retains its ordinary meaning. Discovery neither grants signing permission nor exposes inventory through `getVersion`. Permission UI and grant organization remain wallet-specific.

#### Exact balances

The balance selectors adopt [BRC-112](/brc/wallet/0112.md), including its exact module balance representation. A value query sums token units, never carrier satoshis; an authority query counts capabilities, never their zero-valued token fields. The target asset and role are determined by the selector. Only admitted, unspent, unreserved outputs available under the wallet's accepted state policy contribute. Pending receipts and reserved inputs are excluded. The same ownership, read-permission and tag-filter rules apply as to the corresponding basket. An existing, accessible basket with no matching available outputs returns zero; a missing or inaccessible basket uses the normal BRC-100 error behavior.

Responses contain `outputs:[]`, no `BEEF`, and the exact aggregate in `totalOutputs` as canonical decimal text, including `"0"` for zero. BRC-112's P-basket string encoding applies to the API, JSON and binary substrates. `limit` and `offset` do not affect the sum. Each value output remains uint64, but the sum has no uint64 ceiling. Ordinary inventory counts retain their numeric format.

An unsupported codec or validator, exceeded resource limit, or inability to establish the requested balance MUST produce an explicit error. No rounding, wrapping, saturation or partial sum is permitted. `balance p color ...` is prohibited; `p color balance assets` is invalid because amounts of different assets must not be combined.

## Overlay spendability contract

For each asset, the topic and lookup service are deterministically:

```
tm_color_<assetId>
ls_color_<assetId>
```

These names use the canonical underscore asset ID, not the key-derivation `assetTag`. They cover both token encodings, value and authority. For **every** input, whether caller-supplied or wallet-selected, the wallet MUST authenticate the source output, apply BRC-162's binary-prefix precedence, determine its token asset and role or bare-satoshi status, and derive any topic and lookup service it needs. The caller supplies no input-topic hint. An application label, basket, description or other annotation cannot conceal a token, designate another topic, or select a service URL. A source that cannot be resolved and authenticated fails; the wallet MUST NOT assume it is bare satoshis.

Under baseline overlay handling, the wallet MUST have a user-accepted configuration for which providers and evidence it trusts for that asset and how it establishes a sufficiently current answer. It may use owner-configured or owner-initialized [BRC-88](/brc/overlays/0088.md) SLAP trackers to discover providers. Discovery alone does not make every advertised host a required or trusted provider. The wallet MUST authenticate the providers and response provenance required by its configuration and apply that configuration's freshness, availability and disagreement rules before releasing authorization or accepting custody. If it cannot establish a sufficient answer under those rules, it MUST fail closed. A historical proof or cached permission does not replace the required current check. A caller-supplied endpoint or unauthenticated declaration is not a trust anchor. An immutable, authenticated deploy selecting the attested profile may instead select its fixed-identity mode, subject to that profile and user authorization.

This BRC specifies neither one provider set nor a universal quorum, timeout, chain-tip tolerance, facilitator, [BRC-101](/brc/overlays/0101.md)-style negotiation, or asset-network participation authorization scheme. Those choices belong to the wallet, asset issuer, configured trackers, application, users and their wider system. Wallets can consequently disagree about admission or spendability while following this BRC in good faith. An issuer's and counterparties' conventions for an asset may be necessary for a transaction to be accepted by its intended recipients. A wallet MUST account for that interoperability risk in its own authorization and submission policy; a response from a provider trusted by one wallet is not automatically sufficient for another wallet.

A conforming service MUST support this [BRC-24](/brc/overlays/0024.md) query:

```json
{
  "service": "ls_color_<assetId>",
  "query": {
    "type": "color-spendability",
    "version": 1,
    "assetId": "<assetId>",
    "topic": "tm_color_<assetId>",
    "outpoints": [
      "<txid>.<vout>"
    ]
  }
}
```

Query outpoints use canonical [BRC-36](/brc/outpoints/0036.md) dot form. The response MUST be BRC-24 `output-list`, containing exactly the queried outputs that are currently admitted and unspent in that asset's topic. Each item MUST include its `outputIndex` and BEEF sufficient to authenticate its source output. An empty list is a valid negative answer. Any missing queried token outpoint fails its spendability check; unrelated, duplicate or conflicting returned outputs are invalid responses. The wallet MUST reconstruct each returned outpoint and match its bytes to the supplied source transaction, asset ID, role, amount and script.

Services MUST additionally support the same query shape with `type: "color-admission"`. This returns exactly the queried outputs that were validly admitted to the topic, including outputs now spent. It provides historical membership for receipt validation, not current spendability. Missing historical outputs fail unless the wallet independently establishes their admitted lineage through a complete BRC-176 proof and verifies the received output's current membership. Both queries use the same source-byte matching and response rules.

These queries are a minimum interoperability profile, not a restriction on additional service queries, return-value forms, facilitator capabilities or token-specific functions at higher layers. Services MUST apply BRC-161/162 admission and authority rules, recognize both encodings including canonical 36-byte IDs for legacy nonzero-index deploys, and admit valid token outputs regardless of their carrier satoshi value. The optional one-satoshi service policy in BRC-161/162 is not an alternative validity rule for a conforming `tm_color_<assetId>` or `ls_color_<assetId>` service. A provider unable to meet these rules MUST NOT advertise or answer as that asset's conforming service; the wallet MUST reject known nonconforming answers. Script prefix presence alone does not prove membership. A successful response is a claim about that provider's current service state under the wallet's trust policy, not a miner-enforced token rule, a proof that every other provider agrees, or a future guarantee that an output remains unspent. Pending actions require fresh validation on completion.

### Deployment discovery

The shared topic `tm_color` MUST be available before any particular issuance. Its role is deployment discovery, not per-asset spendability. A provider serving it MUST authenticate the complete deployment transaction and chain evidence and validate the BRC-161/162 deploy position, encoding and amount/authority role without applying a one-satoshi carrier filter. It MUST recognize legacy BRC-161 deployments at nonzero output indices. It admits qualifying deploy outputs; it MUST NOT accept an arbitrary asset ID or caller metadata as a deployment. Its admission does not admit subsequent token transfers or authenticate other assets in the same transaction.

After its signed bytes and transaction ID are fixed, a wallet-created deploy MUST be submitted to `tm_color` during normal processing. Configured providers can observe that deployment and seed `tm_color_<assetId>` and `ls_color_<assetId>` from the validated deploy and its canonical issuance outpoint. Each resulting service MUST apply the ordinary per-asset rules and advertise through the wallet's configured discovery system. No per-asset provider is required to exist before the deployment transaction is constructed or signed.

The wallet MUST then discover an accepted provider for the derived service and obtain the actual per-asset admission/spendability result before crediting its deploy output. A discovery-topic acknowledgement alone is insufficient. If no accepted provider is available or asset admission fails, retain the exact signed transaction and prospective basket as pending, report the failure, and retry discovery/submission idempotently. Do not invent a new issuance or rederive the ISSUE key to work around that failure. Existing assets consumed or created by the deployment transaction still require their own checks and submissions.

This bootstrap path applies to wallet-created deployments; incoming `internalizeAction` still requires existing per-asset admission and MUST NOT silently submit to either topic. Partial or consensus-non-final deployments remain pending as specified below.

## Transaction evidence and admission

The caller MUST provide the complete transaction context, authenticated source outputs and required BEEF/SPV evidence. A bare preimage, digest, amount declaration or list of hashes is insufficient. Txid-only entries may be resolved from authoritative wallet knowledge; unresolved sources fail. [BRC-176](/brc/tokens/0176.md) packets MAY supply token-lineage evidence but MUST be validated under that profile rather than stripped as ordinary Atomic BEEF. They do not replace baseline current overlay spendability. Only the declared attested or another explicit evidence profile supplies its stated replacement. Neither `trustSelf` nor `knownTxids` waives token admission or currentness checks.

The wallet MUST validate all source output identities, scripts, satoshi amounts, proofs and token roles; reject duplicate inputs and conflicting representations; and, before releasing a spend signature, check every token input against its asset overlay's current spendability. For a completed receipt, consumed inputs instead require authenticated historical admission or valid BRC-176 lineage; checking them as currently unspent would incorrectly reject ordinary receipts. Foreign inputs contribute amounts only after this authentication and topical-membership check. The wallet MUST evaluate the resulting transaction per issuance ID under BRC-161/162:

* A deploy is admitted only at the position and under the rules of its encoding.
* Apply the encoding-specific BRC-161/162 balance and authority rules exactly, aggregating by the same issuance ID across encodings. Without authority, all non-mint value and explicit-burn output amounts together require value input coverage; any uncovered output invalidates the transition.
* BRC-161 `mint` outputs require valid authority. Its `transfer` and `burn` totals require value-input coverage even when authority is present. Legacy `burn` outputs have no spendable token value and MUST NOT enter custody or incoming-value accounting; explicit and implicit burns both require consent.
* With valid authority, BRC-162 minting and authority split, combine, transfer and termination follow its rules. Authority contributes zero to value totals.
* Apply each encoding's admission rules to its own output groups. In particular, an invalid BRC-161 transfer/burn group does not by itself invalidate a separately authorized legacy mint group. The wallet MUST reject an action whose intended outputs are not all admitted; it MUST NOT treat destruction of an input by an over-output transaction as a successful transfer.
* Metadata and decimals never create supply, confer authority, or waive checks.

For each existing asset, the following exact arithmetic determines both authorization facts and the required plan operations. Let `V` be the sum of admitted value inputs (never authority or legacy burn inputs), `T` the sum of BRC-161 `transfer` outputs, `E` the sum of BRC-161 explicit `burn` outputs, `M` the sum of BRC-161 `mint` outputs, and `B` the sum of BRC-162 value outputs. All sums use an integer domain wide enough for multiple uint64 amounts. A legacy `mint` requires an admitted authority input. A legacy `transfer` or `burn` requires `T + E <= V` even with authority. Put `R = V - T - E`; a negative `R` fails. Without authority, `M` and new authority outputs are invalid and `B <= R` is required. With authority, `B` may exceed `R` under BRC-162. Define:

```
fundedBinary = min(B, R)
minted       = M + (B - fundedBinary)       // M requires authority
burned       = E + (R - fundedBinary)
transferred  = T + fundedBinary
```

These are canonical **authorization and supply-accounting** quantities, not an assertion that individual indistinguishable binary output units have an on-chain provenance. In particular, the convention allocates remaining value inputs to binary outputs before counting binary minting, avoiding arbitrary simultaneous mint and burn claims. It preserves `minted - burned = M + T + B - V`. Legacy `mint` is always newly created supply; legacy `burn` is always destroyed supply. A positive `burned` amount requires explicit burn consent and a `burn` operation, even when authority is present and even if a separate mint makes the net supply change zero. A positive `minted` amount requires mint consent and a `mint` operation. A positive `transferred` amount requires `transfer`. Zero quantities require none of those respective operations. Deploys use only `deploy-fixed` or `deploy-authority` for their new asset and do not enter this existing-asset calculation. This calculation does not waive the per-encoding admission rules.

For an existing asset with `A_in > 0` admitted authority inputs, count all authority outputs for that same asset as `A_out`. Exactly one authority operation is required: `authority-end` if `A_out = 0`, `authority-combine` if `0 < A_out < A_in`, `authority-transfer` if `A_out = A_in`, or `authority-split` if `A_out > A_in`. These names classify the transaction-wide capability count; they do not imply that all authorities remain under one owner or that a same-count replacement is harmless. Consent MUST separately cover every resulting authority's script, controller where verifiable, and capability, including delegation and loss of control. Without an authority input, any new authority output is invalid. Operations for a given asset MUST be exactly the set implied by these predicates, with no missing or extra entries. This applies equally to foreign inputs and outputs.

The wallet MUST perform independent satoshi conservation and fee validation. There is no module-wide one-satoshi rule: conforming `color` services do not filter token validity by carrier value. Actual script consensus and ordinary wallet satoshi and fee policy still apply. Nonzero bare-satoshi payments, token-carrier satoshis and fees remain fully accounted for.

Every completed transaction MUST pass consensus-valid script execution for all inputs, including arbitrary foreign scripts. An incomplete subject may omit unlocking scripts only in an explicitly pending action; its available context, source evidence, overlay state and token transition must still be checked. Invalid provided scripts MUST fail. The wallet MUST NOT represent a pending transaction as fully validated, admitted, mined or immediately spendable.

## Structured authorization facts

Authorization MUST be based on trusted, validated facts for the entire action:

* authenticated originator, network and selected wallet/root context;
* every asset's issuance ID, encoding, value and authority inputs and outputs, scripts, outpoints, overlay topic and current check results;
* per-asset wallet input total, wallet-owned output total, incoming amount, outgoing amount, net debit or credit, burn, mint and authority changes;
* satoshi inputs, wallet receipts, outgoing payments, carrier values and fees;
* recipients as verified control identities where known, otherwise script-based destinations with the limits of that identification stated;
* wallet-selected inputs, generated change, caller-fixed positions, sequences, locktime, transaction version, signature modes and exact commitment coverage;
* completeness, pending status and terms that remain conditional or mutable;
* required profile versions and parameters, protected contract roles and state transitions, and additional validated authorization facts those profiles require.

Netting MUST be computed separately for each asset from authenticated inputs and wallet-controlled outputs. Foreign funding can offset a debit only to the extent it validly funds wallet-owned outputs of that **same** asset. Recognizing an output's key requires the stored or supplied remittance tuple and comparison against its actual P2PKH hash, or the required profile's verified control rules; an application annotation cannot establish wallet ownership. A conditional or joint signing role cannot offset a debit as an unrestricted receipt without the profile establishing the corresponding control and authorization facts. Satoshis are accounted separately under normal spending permissions, including [BRC-116](/brc/wallet/0116.md) DSAP where implemented. Token-carrier satoshis MUST appear in total satoshi accounting without also being counted as a bare-satoshi payment. Internal transfers and change are not external spending.

When value of one asset leaves and another enters, the wallet MUST present the action as a swap with all legs. Bare satoshis are an asset for this presentation; a swap may have any number of token and satoshi legs, including three or more assets. Different assets MUST NOT cancel each other's debits or disappear from the presentation. Burns and authority delegation, duplication or destruction require clear consent even when the fungible net debit is zero. Display metadata is untrusted descriptive information; the issuance ID remains available.

The user MUST consent to the actual authorized consequences. Rendering and permission organization are wallet-specific: wallets MAY use per-action approval, origin-scoped limits, monthly allowances, thresholds, manifest-informed rules or other user-authorized policies. This specification mandates no particular quota, permission-token encoding, UI framework, or frequency of prompts. A generic cryptographic protocol grant does not substitute for asset spending consent. Concurrent operations and retries MUST NOT exceed a wallet's granted permission or consume an allowance twice for the same authorized action.

## Metadata types and validation

Every envelope, plan, remittance, operation and constraint is a JSON object with exactly the named members. Duplicate JSON members and unknown members MUST fail at every nesting level; `profileData` enforces its profile/asset map structure and its leaf values use the required profile's explicitly defined schema; duplicate rejection remains mandatory. Optional `profileData` is permitted in signature envelopes, action plans and receipt instructions only. The optional `tokenProofs` member is permitted only in signature envelopes and action plans; omission means an empty array. Receipt custom instructions MUST reject that member, even when its value is empty. Each item is exactly `{assetId, subjects, beef}`: a canonical asset ID, a nonempty array of unique canonical subject outpoints, and a nonempty numeric byte array encoding one BRC-176 packet. The packet MUST be validated for exactly those subjects and that asset; contradictory or duplicate proof scopes fail. Packet presence does not assert current admission or spendability. These bytes count toward the containing request's resource bound. Wallet-fetched proofs may be used only after the same validation. The `tx` field separately uses BRC-95 subject framing and ancestor inclusion; incomplete subject script execution is deferred until completion, and MUST NOT be described as fully validated Atomic BEEF.

Arrays MUST have the types specified here; `null` is allowed only where explicitly stated. Strings MUST be strict UTF-8. Numeric indices and versions MUST be integers, not fractions, booleans or strings. `version` is exactly `1`. An index is in `0..2^32-1` and MUST select an actual input/output or a satisfiable planned position. `sighashType` is an integer in `0..255`, further subject to consensus rules. `tx` is a nonempty numeric array of integer bytes in `0..255`, not base64 or a numeric-key object.

All metadata `outpoint` fields use canonical lowercase BRC-36 dot form with a uint32 decimal index without leading zeroes. `assetId` and `ISSUE` use the exact identity rules above; ISSUE is prohibited for existing inputs. Topics are exact strings derived from the asset ID. `senderIdentityKey` is a valid compressed secp256k1 public key. Prefix/suffix strings and resulting derivation must satisfy the namespace rules. `ownedOutputs` contains at most one remittance per output index. Source-output classification and topic derivation are entirely the wallet's responsibility. `inputTopics` and its former hint objects are not members of any version-1 envelope, plan or receipt instruction and MUST fail as unknown metadata. Every remittance MUST match authenticated transaction bytes.

Plan `assets` is an array of unique strings and MUST exactly enumerate token assets found in the planned sources and outputs, including ISSUE only when creating a deploy. `operations` is an array of unique `{assetId, operation}` pairs; `operation` is one of the table's enumerated strings; `resource` is valid only for an authenticated BRC-209 identifier. Each constraint array contains objects of exactly the stated shape. Duplicate outpoints, asset change constraints or target positions within an array MUST fail. Cross-array conflicts and positions incompatible with requested output order MUST fail. Override outpoints MUST identify managed inputs actually consumed. A selected input without an override uses the default signature mode. Any malformed metadata MUST fail without signing, mutation of balances or receipt acceptance.

## Signature requests and composability

An application requests one module-key signature using existing fields:

```
createSignature({ protocolID, keyID: "color", counterparty,
  data: UTF8(JSON({version:1, tx:[...Atomic BEEF bytes...], inputIndex,
    sighashType, ownedOutputs:[...remittances...]})),
  seekPermission }, originator)
```

The five JSON members shown are required; `ownedOutputs` may be empty. Optional `tokenProofs` carries lineage packets and optional `profileData` carries required-profile evidence as defined above. A remittance is `{outputIndex, assetId, derivationPrefix, derivationSuffix, senderIdentityKey}`; `assetId` may be `ISSUE` only for a deploy output. Root selection for newly managed outputs is the action's selected root; mixed-root custody MUST NOT be inferred. Additional JSON members, duplicate members, invalid UTF-8, invalid byte arrays and invalid indices MUST fail. `hashToDirectlySign` MUST be absent. The envelope is limited to 16 MiB before allocation; a documented lower host limit MUST fail explicitly rather than truncate. All remittances are checked, not trusted.

The wallet MUST verify that the protocol's asset selector identifies the selected source asset; ISSUE is valid only for the preserved original deploy tuple. It MUST derive the selected key, match it to the selected managed P2PKH source (or a recognized module-key signing role in a foreign script), construct the exact consensus preimage from authenticated source data and authorize its coverage. A foreign source requiring another module's or a BRC-29 key is not an alias into this signer. Executed `OP_CODESEPARATOR`, when applicable, MUST be handled using its actual executed script path and consensus script code; a caller-provided code separator offset or signature slot is not evidence of that path. If partial foreign execution needs missing material to determine the preimage, the request fails until that material is supplied. This does not limit foreign scripts that the module need not sign.

The result is BRC-100 `{signature: Byte[]}`: DER low-S ECDSA over the wallet-computed transaction digest, without the script sighash byte. Verification uses `hashToDirectlyVerify` and the same tuple, not the JSON envelope as `data`. The wallet MUST reserve managed inputs and record consent before releasing a signature. A signature request may spend module-managed balances; it MUST NOT silently sign default-basket funding inputs.

### All signature modes

The module MUST support all consensus-valid sighash **families**, including ALL, NONE, SINGLE and ANYONECANPAY combinations and the post-Chronicle digest variants. It MUST NOT impose the earlier four-mode restriction. It MUST, however, refuse to create or release a SINGLE signature unless `inputIndex < transaction.outputs.length`, even where consensus would accept the missing-output case. This safety condition applies to `createSignature`, `createAction` and `signAction`, including signatures prepared for a pending action. In the original transaction digest algorithm, a missing matching output makes SINGLE sign the constant digest `1`, so the signature is reusable without an outpoint or output commitment. Refusing that degenerate context loses no distinct useful transaction commitment; NONE remains available where zero output coverage is intended. Other invalid consensus modes or contexts fail through consensus validation, not a token-specific mode whitelist. Standard wallet-generated managed-input signatures SHOULD use ALL|FORKID without ANYONECANPAY unless the authorized agreement needs another mode.

The wallet MUST select the actual consensus digest algorithm before calculating coverage. FORKID without CHRONICLE uses the BIP143-style preimage: `hashPrevouts` commits all input outpoints only when ANYONECANPAY is absent, and ANYONECANPAY zeros that component. CHRONICLE selects the original transaction digest algorithm even when the FORKID bit is also set; it does not have a `hashPrevouts` field. The wallet MUST apply that algorithm's script code, sequence, input and output serialization rules, including executed `OP_CODESEPARATOR`, before signing or describing commitments. ALL commits all outputs, a valid SINGLE commits its corresponding output, and NONE commits no outputs. These components MUST NOT be described as interchangeable. A named, unspent counterparty input committed by a signature prevents a completed transaction from consuming it after a conflicting spend; that fact alone does not commit the requested outputs or guarantee token delivery.

A wallet MAY release a partially signed offer before receiving the counterparty's unlocking scripts. For a transaction-level guaranteed swap, the named incoming inputs and promised wallet-owned outputs MUST be committed by the released signature, validated covenant conditions, or other independently verified commitments that remain binding in every valid completion. The wallet MUST identify uncommitted terms and all possible authorized consequences, including burn, missing consideration and authority delegation. Disclosure or broad consent alone MUST NOT turn an unsafe conditional exchange into a guaranteed swap. A weaker signature mode MAY be used when the user's authorized disposition is unconditional at signature release, so every possible completion is within that disposition and a later untrusted actor cannot worsen the user's agreed position, or when the wallet has verified an applicable, system-specific safeguard or remedy for the conditional exchange. The safeguard or remedy may be in script, at law, or elsewhere in the asset ecosystem; its design is outside this BRC. If neither condition holds, the wallet MUST decline the signature. It MUST NOT present conditional terms as guaranteed receipts or authorize only the displayed favorable completion.

Revalidation before wallet completion is mandatory but cannot restrict an external party using an already released signature. A pending reference, UI cancellation or expired allowance does not retract that capability. Composable agreements remain possible with arbitrary scripts and independently supplied signatures; the wallet enforces accurate authorization rather than a fixed swap transaction template.

Transaction-level commitments do not themselves establish overlay admission. Before signature release or broadcast, the wallet MUST apply its configured asset and counterparty acceptance policy to the intended transaction. It MUST perform determinable token and profile checks, available admission preflight under its configured provider and known participant policies, and any applicable system-specific settlement safeguard checks. The caller cannot suppress a check by omitting an assertion or hint.

If those checks establish that a token output the wallet would count as payment, change or consideration cannot be admitted by its topic under the acceptance policy required for that leg, the wallet MUST NOT release any signature it controls for the action. This includes a swap in which another leg can settle while that output is rejected. The prohibition covers signatures for both token and ordinary satoshi funding inputs. It applies to direct and managed signing, partial actions, revisions and `noSend`. Consent to unconditional disposition, a broad grant or an alternate remedy cannot override a known failed output. Explicit BRC-161 burn outputs are not presented as admitted receipts.

An unavailable or inconclusive preflight is handled by the existing fail-closed and conditional-exchange rules, not treated as a known rejection. A wallet MUST NOT claim that an output is a guaranteed admitted token receipt before the required topic accepts it. Because later provider failure, policy differences or another party's inaction can defeat a prospective credit, designers of a conditional exchange MUST bind the required consideration or provide a clearly specified alternate remedy under that system's assumptions and risk profile. Otherwise a participant who releases an inadequately constrained signature may lose **that participant's** assets. One participant's signature grants no power over another participant's keys: each independently contributed input requires its controller's own valid authorization, and recovery or overlay disagreement MUST NOT treat unrelated users' assets as spendable or invalid. This BRC does not prescribe scripts, certificates, on- or off-chain identity linkability, legal terms, or an asset-specific remedy.

## Action planning, selection and change

Ordinary BRC-100 calls keep their existing argument and result shapes. The module action plan is strict UTF-8 JSON, hex encoded and split into consecutive chunks of at most 200 hex characters. It is carried in existing `labels`:

```
p color plan <partIndex> <partCount> <hexChunk>
```

Hex chunks MUST contain an even, nonzero number of lowercase hex digits. Indices are zero-based; index and count are decimal without leading zeroes and bounded to uint32. Concatenate chunks by index, decode hex once, then decode strict UTF-8 JSON with duplicate-member rejection. Nonfinal chunks MUST contain exactly 200 hex characters; the final chunk contains at most 200. Reject missing parts, inconsistent counts, invalid encodings or bounds before large allocation. There MUST be exactly one complete plan, with each part present once and a consistent positive count. Parts may occur among ordinary action labels; their index determines reconstruction. A plan is bounded to 16 MiB decoded JSON and existing per-label limits. A host with lower action limits MUST report an error. Plan labels are module metadata and MUST NOT be interpreted as consent or as [BRC-177](/brc/wallet/0177.md) expiry labels. `listActions` queries using these exact labels retain ordinary matching semantics with module-aware read permissions.

The plan has these required members and optional `tokenProofs` and `profileData` members defined above, with no other members:

| Member            | Meaning                                                                                                                                                                                                                                                                         |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `version`         | Integer `1`.                                                                                                                                                                                                                                                                    |
| `assets`          | Unique canonical asset IDs involved, plus `ISSUE` for a deploy.                                                                                                                                                                                                                 |
| `ownedOutputs`    | Remittances for requested outputs to be managed; same format as the signature envelope.                                                                                                                                                                                         |
| `operations`      | Per-asset intent: `transfer`, `burn`, `deploy-fixed`, `deploy-authority`, `mint`, `authority-split`, `authority-combine`, `authority-transfer`, or `authority-end`; BRC-209 IDs instead use `resource`. Declare every applicable operation and validate against actual scripts. |
| `inputPositions`  | Array of `{outpoint, index}` constraints on explicit inputs; empty when unconstrained.                                                                                                                                                                                          |
| `changePositions` | Array of `{assetId, index}` constraints for generated token change, or `{assetId:null,index}` for ordinary satoshi change; empty when unconstrained.                                                                                                                            |
| `sighashTypes`    | Array of `{outpoint, sighashType}` overrides for managed inputs; empty uses the default above.                                                                                                                                                                                  |

An operation is `{assetId, operation}`. Authority operations and burns must be explicit; inferred transfer intent never authorizes them. A plan's `ISSUE` identifies only its deploy, not any existing asset. The transaction's prefix and validated sources determine quantities and operations; the plan cannot override them. A deploy plan MUST have exactly one deploy. After finalization, its record is indexed under the resulting ID without changing the signed plan or derivation.

`createAction` MUST recognize plan labels, token-encoded requested outputs, relevant module baskets, and explicit inputs already managed by the module. Missing required plans or source evidence fail. The module MUST authenticate foreign inputs, select sufficient unreserved value inputs separately per asset, and make fresh per-asset change outputs under the custody profile. Required profile and contract-resource checks apply to caller inputs and generated successors as well. Restricted contract resources are not ordinary selectable funding or change. Valid foreign amounts are netted before wallet selection. Authority operations select actual authority inputs, not a numeric balance. Applications MAY supply required inputs or input/output positions. Setting `options.randomizeOutputs:false` preserves requested output order; explicit position constraints and generated change MUST be satisfied without inserting, shuffling or replacing covenant-sensitive outputs. An impossible layout, insufficient asset or satoshi balance, or absent overlay membership MUST fail before signing. Newly generated keys and authoritative ownership facts belong to the wallet; application selection does not make an input foreign.

Only declared burns may suppress value change; mint and issuance outputs follow their declared supply rules. Satoshi funding, outputs and change use the ordinary wallet action machinery alongside the token plan. The wallet MUST authorize the final funded layout, not an earlier estimate. `createAction` MAY automatically sign managed P2PKH inputs, or profile-supported contract inputs for which it can construct and verify the complete unlock, when that final action is valid and authorized, including colored-coin payments and multi-asset swaps. It MUST NOT invent missing contract material. Missing foreign unlocking scripts or `signAndProcess:false` returns the existing `signableTransaction` reference. Applications may exchange the resulting partial transaction and signatures.

`signAction` MUST preserve the pending plan, reservations, constraints and previously committed fields; validate supplied unlocking scripts; refresh overlay spendability and permission validity; and validate the final transaction before returning it as complete or processing it. A changed context needs revalidation and consent covering the change, with new signatures where required. A module signature and an action reference for the same inputs MUST share one authoritative reservation and authorization record rather than conflict or charge twice.

Reservations are atomic across all assets and satoshi funding. Failed checks before signature release roll back provisional reservations. After signature release, aborting an action may cancel processing but MUST retain the relevant exposure record; inputs MUST NOT be offered to a conflicting action until the wallet establishes that the capability can no longer consume them, or explicitly authorizes a linked revision or conflicting spend while retaining all remaining exposure. Authorization alone does not invalidate the earlier offer. Unspentness checks, observed external completion and conflicts update this record. Wallets MUST distinguish pending exposure from settled spending. Quota implementation is wallet-specific, but released capabilities cannot be hidden by resetting a pending action. `noSend`, `sendWith` and ordinary two-phase flows remain supported; returning a noSend transaction does not establish overlay admission.

### Non-final transactions, revisions and auctions

Wallets MUST support time- or height-constrained Colored Token actions through the existing BRC-100 `lockTime`, input `sequenceNumber`, `signableTransaction`, `signAction` and `noSend` fields. This applies to multi-asset auctions, token-for- satoshi bids and arbitrary foreign contract scripts as well as ordinary sends. The application supplies auction terms; the wallet validates their enforceable consequences and owns the processor coordination required below. This defines no new action method or Bitcoin consensus rule.

Track these facts separately: whether all unlocking scripts are valid and present; whether the transaction is consensus-final in the evaluated chain context; whether processing/broadcast is requested and currently eligible; and whether every required overlay has admitted it. Fully signed bytes have a transaction ID even while non-final. An incomplete transaction's current ID is provisional. Neither type of pending action supplies spendable received value.

Apply Bitcoin's [transaction finality rules](https://protocol.bsvblockchain.org/specification/consensus-rules#finality-nlocktime--nsequence) to the complete input set. `lockTime` is an absolute height below 500000000 and an absolute timestamp otherwise. A zero lock time, a lock time strictly below the applicable chain comparison value, or all input sequences equal to 4294967295 makes the transaction final. A lower sequence alone does not create a delay; all-final sequences bypass even a future lock time. Implementations MUST use the applicable chain rules, not the user's wall clock or a Bitcoin relative-locktime assumption. An auction deadline is not enforced merely by putting a timestamp in metadata or using a nonmaximum sequence.

Before releasing a signature, establish and present the effective time/height constraint, all asset and satoshi consequences, output positions, signature commitments, and any still-executable earlier revisions. A wallet MAY authorize an explicitly pending non-final action once all available scripts, sources, current overlay state and token transitions pass validation. It MUST NOT claim immediate settlement or ordinary completed processing while non-final. For a fully signed non-final action, `noSend:true` may return its transaction bytes; the wallet MUST retain its pending status. A processing request that cannot yet be fulfilled MUST return an explicit error and preserve released exposure. With `noSend:false` and `acceptDelayedBroadcast:true`, a complete non-final action MAY instead succeed as processor-accepted pending processing, but only after the coordination acceptance checks below. With delayed processing disallowed, it MUST return an error while non-final. Processor acceptance is not settlement or spendable overlay admission.

Each revision is an exact transaction context. `signAction.spends[i].sequenceNumber` may update that input only subject to BRC-100's saved-action contract; it cannot silently alter other inputs, outputs or lock time. A changed bid price, recipient, lock time or layout needs a new `createAction` context (or the existing complete signature-request envelope), linked by the wallet to the shared input exposure. Every revision MUST recheck all assets, sources, conservation, permissions, positions and current overlay state, and recompute every affected preimage. Retain a signature only if it verifies for the revised context; regenerate or obtain every invalidated signature before returning a complete transaction. This includes foreign signatures: changing a sequence does not give the wallet authority or ability to replace another party's signature. Preserve covenant output ordering and generated-change constraints, or fail.

#### Wallet-managed processor coordination

A conforming wallet MUST establish and maintain coordination with transaction processors that ensures **every valid higher-sequence replacement is accepted** while the registered transaction family remains replaceable. This is the wallet's responsibility, including processor selection, authentication, submission, propagation, acknowledgement, recovery and ongoing coverage. An application need not implement processor-specific replacement logic. A wallet MUST NOT shift this obligation to the application, substitute a risk disclosure for it, or silently downgrade a coordinated revision to best-effort broadcast.

Before first releasing a non-final transaction signature, including through `createSignature`, partial actions and `noSend`, the wallet MUST establish an authenticated processor arrangement covering the family and its intended lifetime. The arrangement MUST identify the participating processors, their replacement and retention obligations, the evidence of acceptance, and their capacity, fee and availability conditions. The wallet MUST arrange sufficient coverage for the promised replacement and settlement behavior; merely choosing an arbitrary reachable node is insufficient. It MUST check these conditions before authorizing a revision, so a valid authorized replacement cannot later be treated as an optional policy exception. Without sufficient coordination, the wallet MUST fail before releasing a new signature. This BRC standardizes the obligation and validated facts, not a vendor, fixed processor count or transport.

A **transaction family** is identified by the network and the exact ordered input outpoint list, held in the wallet's shared reservation record. Relative to the latest accepted revision, a higher-sequence replacement MUST preserve that list, decrease no input's uint32 sequence and increase at least one. Identical bytes are an idempotent resubmission, not a new revision. Different bytes with the same sequence vector, decreasing or incomparable vectors MUST NOT supersede an accepted revision. The wallet MUST serialize competing updates against the latest accepted state rather than compare each with a stale base. Changing the input set or order is a new family, and requires a separately validated coordination handoff covering any shared-input exposure; it is not made a valid replacement by increasing an unrelated sequence. A handoff MUST bind both families, their latest accepted transaction IDs and shared outpoints; all required processors must acknowledge the new family as successor and prevent the earlier family from resuming preferred processing before success is reported. If these obligations cannot be established, the handoff fails without silently freeing the old family's inputs.

A **valid replacement** also has the required valid unlocking scripts, current source availability and token evidence, exact asset and satoshi accounting, authorized terms, and preserved positional/covenant constraints. Partial bytes may be prepared under the arrangement but cannot be reported as accepted complete replacements. Higher sequence is not permission to change the bid price or any other term. The wallet MUST regenerate or obtain affected signatures as above. Replacement eligibility closes when an input is consumed by an established conflicting spend, the latest accepted revision becomes consensus-final in the evaluated chain context, or the processors atomically accept an expressly authorized finalizing revision. An arbitrary local timeout or a processor refusal is not finalization. The arrangement MUST cover the non-final lifetime; a processor may not unilaterally shorten it. A valid higher-sequence finalizing revision is accepted before closing the family to further updates. A sequence increase cannot undo completed settlement. The wallet MUST manage propagation and finalization timing so it does not promise acceptance of an update whose acceptance window it cannot satisfy.

When processing is requested, the wallet MUST obtain authenticated evidence that the exact transaction is accepted as the latest revision under the arrangement, superseding earlier revisions for relay and eventual processing. Evidence MUST bind the network, ordered input outpoints, previous and replacement transaction IDs (no previous ID for initial acceptance), sequence vector, processor identities and the arrangement's validity scope. Required processors MUST agree on the accepted revision, retain or recover that state across restarts, and prevent stale or equal-sequence conflicting revisions from becoming preferred again. An HTTP success, one ordinary mempool observation, an overlay answer, or an application's assertion is not sufficient evidence of those obligations. The wallet MUST monitor their continued fulfillment until finalization, and coordinate replacement processors and overlays as necessary.

With `noSend:true` the wallet MUST honor the prohibition on transaction submission: it may establish the arrangement without submitting the signed transaction, but returns **prepared**, not processor-accepted, bytes. The same distinction applies to `signableTransaction`. When the caller later requests processing through `signAction` or a `sendWith` flow, the wallet performs the acceptance step. It MUST NOT claim replacement from the mere return of a signature, transaction ID or pending reference.

Processor refusal, timeout, conflicting acknowledgements or lost coverage MUST produce an explicit failure of the replacement operation, not a successful latest-revision result. The wallet MUST preserve all transmitted or released exposure, reconcile uncertain outcomes and retry idempotently where possible. A valid update's refusal is a failure to fulfill the coordination obligation, not permission to settle an older revision silently. The wallet MUST surface that failure and MUST NOT finalize a stale revision or credit speculative outputs while the accepted state is unresolved. Changing providers MUST preserve the latest accepted state and obligations rather than reset the sequence history.

This guarantee is supplied by the wallet's processor arrangement. It does not make an earlier transaction's signatures cryptographically invalid, change Bitcoin's finality rules, or establish that a higher sequence is a higher price. The wallet MUST retain earlier released capabilities as historical exposure, including after coordinated supersession, until a verified conflict or an independently verified consensus/script condition prevents their use. The user and application can rely on the wallet to enforce replacement within its arrangement; they are not responsible for recreating that coordination. A highest-bid-wins promise additionally requires validation of the auction's bid ordering and authorization rules.

`lockTime` remains an earliest-inclusion constraint, not signature expiry or a last-valid auction time. Neither abort nor noSend expiry cancels the processors' obligations or erases released capabilities. Cancellation MUST reconcile the coordinated state, preserve exposure and report any cancellation that cannot be established; it MUST NOT pretend that local deletion revoked the transaction.

On finalization, recheck chain context, all scripts, permissions, all asset states and the processors' agreed latest revision, then follow normal processing and overlay admission. Do not silently set sequences to 4294967295, reduce lock time, drop fixed outputs or reuse stale authorization to make a transaction final. An unspentness check can fail because an earlier revision or another spender consumed an input; report that conflict and reconcile reservations without crediting competing prospective outputs. These rules apply equally to internalization: a fully signed but non-final receipt MUST fail, and overlay acknowledgement cannot waive consensus finality.

## Internalization

`internalizeAction` uses the existing `basket insertion` protocol with the module's per-asset basket and `insertionRemittance.customInstructions` containing strict JSON `{version:1, assetId, derivationPrefix, derivationSuffix, senderIdentityKey}` and optional `profileData`, with no additional members. A deploy receipt uses `assetId: "ISSUE"` for key derivation and derives its actual asset ID and basket from the supplied completed transaction. The root is the wallet's selected root. Unknown or duplicate members and missing required fields MUST fail. An incorrect basket MUST fail rather than be silently reclassified; an issuance initiated by this wallet uses its automatic final-ID assignment. `paymentRemittance` for ordinary satoshis remains BRC-29.

The complete `customInstructions` string MUST fit BRC-100's 1000 UTF-8 byte limit, except for the larger limit explicitly defined by a supported BRC-209 or attested-admission receipt. Module-aware routing and validation MUST apply that exception before ordinary string-length rejection; merely naming a basket does not establish eligibility. Initially bound all `p color` receipt instruction strings to 16 MiB each and 16 MiB in aggregate per call, then validate the authenticated profile and enforce its applicable limit before accepting any output. A lower documented host limit fails explicitly. Other basket limits and binary framing remain unchanged. `tokenProofs`, proof URLs and proof-reference fields are not receipt members; they MUST be rejected rather than ignored. Receipts obtain historical admission through the defined lookup, or independently verified BRC-176 lineage already held by the wallet or retrieved under its configured provider and evidence policy. Fetched or cached packets MUST meet the same exact asset, subject, completeness and chain-evidence checks as caller-supplied packets in action plans or signature envelopes. Cache presence alone is not validation. If sufficient evidence is unavailable, internalization fails. Current membership of the received output is required by the baseline; the declared attested profile instead applies its complete-frontier and offline-acceptance rules.

Baseline receipts define no new caller proof-upload transport. Declared profiles may use their specified `profileData` carrier, without changing `tx`. The ordinary `tx` field retains its BRC-95 meaning: a BRC-176 packet MUST NOT be smuggled through it or stripped as ordinary Atomic BEEF. Removing receipt-embedded proofs changes their delivery, not the wallet's validation obligations.

Subject to the exact declared evidence replacement above, before accepting a receipt the wallet MUST validate complete transaction scripts, source evidence, foreign-input authentication, historical topical admission of consumed inputs, per-asset amount and authority rules, and its control of each requested custody output. It MUST NOT demand current unspentness of inputs already consumed by that receipt. The same encoding, lineage, amount and ownership checks apply to foreign inputs used by `createAction` and prospective wallet-owned outputs used in signing accounting. A candidate output is not yet admitted: its prospective credit is conditional on transaction completion and overlay acceptance, and MUST NOT be added to spendable local balance before receipt admission. The received outpoint itself MUST already appear as admitted and unspent in its asset's spendability lookup. Internalization MUST NOT silently submit an absent transaction to make this test pass. Missing overlay admission MUST reject internalization. The sender or higher-level flow is responsible for submission before requesting receipt.

For wallet-created completed, consensus-final actions, normal processing MUST submit the transaction to every involved token topic and record each topic's actual admission result. A `noSend` or partial action defers submission. Coordinated processing of a complete non-final action may submit it to transaction processors as specified above, but defers ordinary final processing and spendable overlay credit. Deployments first follow the discovery-topic bootstrap above. Admission into one asset's overlay does not imply admission into another's; local receipt and spendable balances MUST only be credited after all required admission checks. If Bitcoin completion occurs but an overlay operation fails, record the actual pending/error state without claiming reversal of the on-chain spend. Retries MUST be idempotent. Partial or consensus-non-final transactions cannot be internalized as completed receipts.

## Discovery, compatibility and security boundaries

This specification defines the optional [BRC-205](/brc/wallet/0205.md) attribute `brc207-color`. Its decoded value for this revision is `4`, meaning the wallet implements this revision's required-profile contract, scoped receipt limits and `color` protocol, basket and action-plan rules. Earlier values do not establish support for this revision. BRC-209 and attested admission remain optional required profiles. A wallet implementing the default attested profile, including all four trust modes, MAY additionally advertise `brc207-color-attested=1`. Future evidence replacements are checked separately; this attribute does not claim support for arbitrary replacements or alter BRC-175 transport discovery. The JSON envelope and plan `version` remains `1`; the capability revision is not their serialization version. Example:

```
example-1.2.3; brc207-color=4;
```

Encoding, single occurrence and outer bounds follow BRC-205. Unknown values MUST be ignored as unsupported metadata. A wallet MAY omit the attribute for privacy, while locked, or to meet bounds; omission is not proof of non-support. Presence is a snapshot, not authorization, proof of safe code or core-method negotiation. It MUST contain no user-specific balances, grants, asset inventory or history. It does not enumerate supported required profiles: support for the exact requirements is checked on every operation, and unsupported profiles fail. Consumers SHOULD refresh on the selected connection before starting a workflow, and MUST discard cached values on provider/account changes or disconnection. Every actual call still checks current support and permissions. BRC-205's extended-string compatibility configuration is required before emission; legacy paths continue to return base-only versions. BRC-185 discovery is independent. Implementations MUST independently adopt BRC-205's profile before using this attribute; this document does not assert deployment or adoption of that profile.

The module supports the BRC-161/162 token model; it does not assume compatibility with earlier `p mandala` drafts, BTMS, generic application keys or other basket profiles. Migration and recovery are outside this specification. An application MUST NOT strip the reserved prefix or fall back to generic signing when this module is unavailable. No software implementation, universal deployment, or live-wallet conformance is asserted here.

Overlay trust is explicit and independent of SPV and Bitcoin consensus. A current spendability answer cannot promise future availability; consensus input commitments and script conditions establish completion constraints. Metadata, permissions and partial transaction references cannot change those constraints. Trusted module code retains private keys and validates the facts supplied to wallet policy and presentation. Arbitrary foreign scripts retain composability without receiving access to internal wallet signing capabilities.

## Conformance cases

Unless a case explicitly selects a required evidence profile, these cases and Appendices A–B exercise baseline overlay admission. Appendix C covers the attested replacement; its exceptions never apply to undeclared assets.

| Case                                                                           | Required behavior                                                                                                                                                              |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Same identities and remittance tuple                                           | Sender-derived recipient public key matches recipient-derived private key; exact encoding and owner selection agree.                                                           |
| Deploy finalized                                                               | Asset ID and value/authority basket assigned from final outpoint; ISSUE-derived key preserved.                                                                                 |
| BRC-161 and BRC-162 inputs for one ID                                          | One asset account, encoding-specific validation, BRC-162 generated outputs.                                                                                                    |
| Unresolved source, service substitution, missing overlay output                | Fail without signing or crediting.                                                                                                                                             |
| Opaque non-map BRC-162 payload                                                 | No defined attributes; enforce the authenticated deploy requirements and profile rules without interpreting partial payload data.                                              |
| Two-satoshi carrier or canonical 36-byte legacy ID                             | A conforming `color` service applies the same base token rules without an optional carrier filter or legacy-ID omission.                                                       |
| Known rejection of a token payment, change or consideration by one asset topic | Refuse every wallet-controlled token or satoshi signature before release, even if another leg can settle or an alternate remedy is offered.                                    |
| Foreign input provenance                                                       | Reconstruct and verify source; matching current topic admission required before amount netting.                                                                                |
| Split, merge, burn, mint and all authority operations                          | Exact per-asset rules and consent; no authority-as-value arithmetic.                                                                                                           |
| Three-asset swap or token-for-satoshis swap                                    | Every leg and satoshi fee represented independently.                                                                                                                           |
| Wallet selection and change with fixed positions                               | Sufficient eligible inputs and fresh change; preserve constraints or fail.                                                                                                     |
| Partial offer before foreign unlocks                                           | Pending status, verified sources, accurate commitments and authorization of possible outcomes.                                                                                 |
| ALL, NONE, SINGLE and ANYONECANPAY                                             | Consensus preimage correctness; no fictitious hashPrevouts or output coverage.                                                                                                 |
| SINGLE with no corresponding output                                            | Reject for both BIP143 and Chronicle digest variants; never release the original-algorithm constant-digest signature.                                                          |
| Mixed legacy/binary value with authority                                       | Apply the exact input-allocation arithmetic; declare and consent to every positive mint, burn and transfer, including offsetting mint and burn.                                |
| Completed foreign-script spend                                                 | Full consensus script validation before use or processing.                                                                                                                     |
| Required payload profile                                                       | Authenticate the deploy; enforce every exact version and parameter set or fail, across encodings.                                                                              |
| Contract resource with unchanged amount                                        | Validate and authorize role/state effects; no automatic funding or unrestricted receipt credit.                                                                                |
| Internalization absent from overlay                                            | Reject; do not silently submit.                                                                                                                                                |
| Retry, concurrent requests, abort and noSend                                   | Shared reservations and accurate exposure; no duplicate credits or quota charges.                                                                                              |
| Inventory and exact balances                                                   | Discover value, authority and pending/reserved records without treating them all as available; preserve exact aggregates or error.                                             |
| Coordinated sequence replacement                                               | Wallet arranges processor coverage before signature release; a valid higher revision must be accepted when processing is requested, or an explicit failure preserves exposure. |
| Receipt metadata bounds                                                        | No embedded tokenProofs; enforce 1000 UTF-8 bytes except the scoped BRC-209/attested-profile limit.                                                                            |
| Capability omitted or stale                                                    | Handle actual call results; no generic-signing fallback.                                                                                                                       |

## References

* [BRC-29](/brc/payments/0029.md), [BRC-42](/brc/key-derivation/0042.md), [BRC-43](/brc/key-derivation/0043.md), [BRC-44](/brc/key-derivation/0044.md): payment keys and derivation boundaries.
* [BRC-98](/brc/wallet/0098.md), [BRC-99](/brc/wallet/0099.md), [BRC-111](/brc/wallet/0111.md), [BRC-100](/brc/wallet/0100.md), [BRC-112](/brc/wallet/0112.md), [BRC-116](/brc/wallet/0116.md): namespaces, action API, balance queries and permissions.
* [BRC-161](/brc/tokens/0161.md), [BRC-162](/brc/tokens/0162.md), [BRC-176](/brc/tokens/0176.md): token encoding, supply and lineage validity.
* [BRC-22](/brc/overlays/0022.md), [BRC-24](/brc/overlays/0024.md), [BRC-88](/brc/overlays/0088.md): overlay admission, lookup and service discovery.
* [BRC-62](/brc/transactions/0062.md), [BRC-95](/brc/transactions/0095.md), [BRC-96](/brc/transactions/0096.md): transaction evidence and framing.
* [BRC-177](/brc/wallet/0177.md), [BRC-185](/brc/wallet/0185.md), [BRC-205](/brc/wallet/0205.md): noSend expiry, discovery and version metadata.
* [BRC-175](/brc/payments/0175.md), [BRC-189](/brc/wallet/0189.md), [BRC-67](/brc/transactions/0067.md): offline bundles, personal trust and SPV ancestry.

## Appendix A — Conformance Examples

### A.0. Reading and running the examples

These independent examples use the BRC-100 CWI cross-document JSON substrate. Each request and response below is the complete JSON message at that boundary. `type`, `isInvocation`, `id`, `call`, `args`, `status` and `result` are transport fields, not new wallet-method parameters. The authenticated browser message source and origin supply the caller identity outside this JSON; examples use `https://shop.example`. A caller-supplied originator cannot impersonate another application. A wallet adapter for another BRC-100 substrate carries the same method arguments and results with that substrate's framing.

Error messages and numerical codes shown here are illustrative CWI mappings: 1 is a general failure, 2 an unsupported action, 6 an invalid parameter, and 7 insufficient funds. Conformance requires the stated failure and lack of unauthorized side effects, not identical English wording or a new module error registry. UI text, approval frequency, transaction fee choice, signature nonce, and reference generation remain wallet choices. Exact result bytes shown are one valid outcome under the stated fixtures. The user-visible facts and validation outcomes are required. All amounts below are integer token units unless explicitly described as satoshis or display values.

Every case starts with a fresh copy of the stated fixture state. A reference to an earlier case imports its described state or bytes, not changes made by executing all preceding examples in order. Do not submit these synthetic transactions to a live network or interpret their identifiers as claims about existing assets. This is an offline reference fixture: its initial source transactions are prevalidated, coinbase anchors at distinct heights starting at 100000, matured at a fixture tip of 100200 in a controlled chain tracker and authoritative wallet store, and the configured test SLAP providers attest the stated topic states. A test harness must supply that trusted anchor state; the raw transactions alone are not SPV proofs. A production wallet must obtain and verify real chain evidence. Txid-only BEEF entries below resolve only through this authoritative fixture store; cases that remove that knowledge fail. BRC-176 packets additionally retain the complete token-source bodies.

For reproducible public keys the synthetic ordinary, Bob and privileged root private integers are respectively 11, 22 and 33. They are public test material, never production credentials. The anyone counterparty is private integer 1. Each key-controlled source deploy uses its original ISSUE tuple, keyID `color`, the nonce prefix listed below and suffix `Ag==`. Subsequent token outputs use their actual asset selector. A newly selected change nonce is fresh within that case. Default satoshi outputs use BRC-29 protocol \[2, "3241645161d8"], keyID "AQ== AA==", counterparty anyone and the respective owner root, independent of token keys.

Fixture identities:

```json
{
  "alice": "03774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb",
  "bob": "03421f5fc9a21065445c96fdb91c0c1e2f2431741c72713b4b99ddcb316f31e9fc",
  "privileged": "021697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5",
  "anyone": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
}
```

| Name | Asset ID                                                             | Initial role and owner                                            | Prefix | Satoshis |
| ---- | -------------------------------------------------------------------- | ----------------------------------------------------------------- | ------ | -------- |
| A    | `e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0` | 1000 units, Alice                                                 | `AQ==` | 1000     |
| B    | `b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0` | 2000 units, Bob                                                   | `Aw==` | 1000     |
| C    | `91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47_0` | 3000 units, Alice                                                 | `BA==` | 1000     |
| H    | `ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c_0` | authority, Alice                                                  | `BQ==` | 1000     |
| F    | `5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474_0` | 2000 units, supplied by Bob; foreign OP\_2 OP\_EQUAL              | `Bg==` | 1000     |
| L    | `32c9b8405ef320bd9cb41f2869d491526183169de0f31477bb8fcb635769a351_0` | 1000 units, Alice; legacy BRC-161                                 | `DQ==` | 1        |
| K    | `8d849b7a3070c7128635ba2696bd90804d2a352dee05ee07f2c1fc034d48ddd1_0` | 1000 units, Alice; foreign module-key script, not managed custody | `EA==` | 1000     |
| Q    | `da4d0facb10834ab595f43b1a6b6ca123f60d35ebf627aa6aede882b54747b39_0` | 1000 units, Alice; foreign module-key script, not managed custody | `EQ==` | 1000     |

The following complete source bodies fix the transaction IDs, scripts and amounts used in the messages. Each deploy is output 0. The two ordinary funding outputs each carry 10000 satoshis. All source bodies are resolved from the prevalidated store described above; labels A, B and so on are reading aids, never wire asset identifiers.

```json
[
  {
    "name": "A",
    "txid": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a0860107636f6c6f722d41ffffffff01e8030000000000001e0002e8036d76a9146cbd20c18911529dd4a707cbe7abcd296a097fe488ac00000000"
  },
  {
    "name": "B",
    "txid": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a1860107636f6c6f722d42ffffffff01e8030000000000001e0002d0076d76a914b06d328176e2fe89101c7701e8290c3ec7e41af288ac00000000"
  },
  {
    "name": "C",
    "txid": "91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a2860107636f6c6f722d43ffffffff01e8030000000000001e0002b80b6d76a91482a6d141057b6bd1d85839bd83b58f6e657c0a9088ac00000000"
  },
  {
    "name": "H",
    "txid": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a3860107636f6c6f722d48ffffffff01e8030000000000001c00006d76a91475a06c850b20c3c7e7e9d607f2cc64ba885daaed88ac00000000"
  },
  {
    "name": "F",
    "txid": "5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a4860107636f6c6f722d46ffffffff01e803000000000000070002d0076d528700000000"
  },
  {
    "name": "L",
    "txid": "32c9b8405ef320bd9cb41f2869d491526183169de0f31477bb8fcb635769a351",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0b03a78601066c6567616379ffffffff0101000000000000007b0063036f726451126170706c69636174696f6e2f6273762d323000457b2270223a226273762d3230222c226f70223a226465706c6f792b6d696e74222c22616d74223a2231303030222c22646563223a2232222c2273796d223a22474f4c44227d6876a9145e30b3732f30c22da5e91cf9556f2362258c07f288ac00000000"
  },
  {
    "name": "K",
    "txid": "8d849b7a3070c7128635ba2696bd90804d2a352dee05ee07f2c1fc034d48ddd1",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a8860107636f6c6f722d4bffffffff01e8030000000000001f0002e8036dab76a9143785bf49db52e85837fa1936ab927ef204d7bfcd88ac00000000"
  },
  {
    "name": "Q",
    "txid": "da4d0facb10834ab595f43b1a6b6ca123f60d35ebf627aa6aede882b54747b39",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0c03a9860107636f6c6f722d51ffffffff01e803000000000000230002e8036d63ab67ab6876a91483d002882c8286eaea767a517c52d5a8f246addf88ac00000000"
  },
  {
    "name": "funds",
    "txid": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0a03a586010566756e6473ffffffff0110270000000000001976a91496f7c6aff5874d2c57f8ca75466d3620fffb9bc488ac00000000"
  },
  {
    "name": "bobFunds",
    "txid": "3d41442b05101fe2b9dc74e24853cb278b2e9494b3d78452b0e858b991bce28e",
    "rawTransaction": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0d03a6860108626f6266756e6473ffffffff0110270000000000001976a91430e2861546dcf665575f3c280857e6d2c4d944da88ac00000000"
  }
]
```

Complete explicit-input requests include already supplied fixture unlocking scripts, not unlockingScriptLength. These are signatures from the input owners’ normal transaction authorization paths; the receiving wallet still checks its own permissions and the entire final action. They do not demonstrate application access to protected private keys. The final ordinary change output is generated by the wallet at the specified changePositions index; applications never select the reserved default basket. Automatic selection/signing and deferred input-length flows are shown separately.

For successful createAction traces the fixture wallet uses version 1, locktime 0, final input sequences, the shown output order and a 10-satoshi fee, unless stated otherwise. It uses deterministic low-S signatures for the reproduced transaction IDs. Normal processing succeeds on Bitcoin and every involved overlay unless the case states a different result. A successful method result never by itself asserts mining finality. The fixture scripts and signature results are concrete encodings; wallet-specific fee/layout choices are allowed when the application has not fixed them, but must be reflected in consent.

### A.01. Capability discovery

The connection has explicitly adopted a BRC-205-compatible version profile. The application originates this request.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDAx",
  "call": "getVersion",
  "args": {}
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDAx",
  "status": "success",
  "result": {
    "version": "example-1.2.3; brc207-color=4;"
  }
}
```

The application recognizes capability revision 4, including required-profile enforcement and scoped receipt limits, across protocol, basket and label namespaces. This is capability information, not permission to spend or evidence of a user balance.

### A.02. Omitted capability

This wallet supports Colored Tokens but chooses not to advertise it. The connection uses the ordinary core version profile.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDAy",
  "call": "getVersion",
  "args": {}
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDAy",
  "status": "success",
  "result": {
    "version": "example-1.2.3"
  }
}
```

Omission does not establish lack of support. An application can attempt the intended module call and handle its result. It never substitutes generic signing. Account, provider or connection changes discard the previous capability cache; discovery is repeated.

### A.03. Unrecognized metadata

The compatible version profile is enabled.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDAz",
  "call": "getVersion",
  "args": {}
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDAz",
  "status": "success",
  "result": {
    "version": "example-1.2.3; brc207-color=5;"
  }
}
```

The application ignores the unsupported attribute value. It does not interpret revision 5 as revision 4, enumerate holdings from this response, or use cached authorization after a provider change.

### A.04. Original deploy key

Alice asks for the public key of her preserved ISSUE tuple, using prefix AQ== and suffix Ag==.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDA0",
  "call": "getPublicKey",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "forSelf": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDA0",
  "status": "success",
  "result": {
    "publicKey": "03a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
  }
}
```

The protocol encodes the UTF-8 strings AQ== and Ag== as 41513d3d and 41673d3d. It does not decode their base64 contents. This remains the key of the original deploy after its asset ID becomes known.

### A.05. Counterparty ownership

Alice requests her own child public key with Bob as counterparty. Bob independently derives the recipient key from Alice’s public identity with forSelf:false.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDA1",
  "call": "getPublicKey",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "03421f5fc9a21065445c96fdb91c0c1e2f2431741c72713b4b99ddcb316f31e9fc",
    "forSelf": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDA1",
  "status": "success",
  "result": {
    "publicKey": "03a5a62ba6fe30cda7de3c6f705389ba20dcde671a86a43810aaa14dfcc7c12c1a"
  }
}
```

Bob obtains exactly 03a5a62ba6fe30cda7de3c6f705389ba20dcde671a86a43810aaa14dfcc7c12c1a. The recipient can derive the matching private key. Changing the application origin or basket does not alter this derivation; permission remains origin-aware. A sender uses the recipient identity and forSelf:false, rather than accidentally deriving its own child.

### A.06. Privileged root selection

Alice explicitly authorizes access to the separate privileged fixture root.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDA2",
  "call": "getPublicKey",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "forSelf": true,
    "privileged": true,
    "privilegedReason": "Access separate token identity"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDA2",
  "status": "success",
  "result": {
    "publicKey": "0222da9b9ede01dc1ae6f1a038d9be2199db5ada2fec3690bca14b0b511ad16dc7"
  }
}
```

This key differs from the ordinary-root key. An output addressed to the ordinary identity is not credited to the privileged root merely because its remittance strings match. The selected root remains consistent throughout one action; mixed-root custody is not inferred.

### A.07. Reject alternate identifier spellings

The application uses the human-readable logical identifier instead of its defined wire encoding.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDA3",
  "call": "getPublicKey",
  "args": {
    "protocolID": [
      2,
      "p color ISSUE AQ== Ag=="
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "forSelf": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDA3",
  "status": "error",
  "description": "Invalid Colored Tokens protocol identifier",
  "code": 6
}
```

No key is derived. Uppercase selectors, underscore wire asset tags, whitespace-bearing or empty decoded remittances, and over-280-character protocol names likewise fail; the wallet neither truncates nor silently re-encodes them.

### A.08. Wallet without the module

This case uses a core BRC-100 wallet that does not implement Colored Tokens.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDA4",
  "call": "getPublicKey",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "forSelf": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDA4",
  "status": "error",
  "description": "Colored Tokens module is not supported",
  "code": 2
}
```

The reserved identifier is rejected before generic permissions. A prior advertisement from another account or provider does not change this result; the application must handle the failure without removing p color.

### A.09. Per-asset inventory

Alice has the admitted, unreserved A deploy output in its assigned value basket.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDA5",
  "call": "listOutputs",
  "args": {
    "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0",
    "include": "locking scripts"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDA5",
  "status": "success",
  "result": {
    "totalOutputs": 1,
    "outputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "satoshis": 1000,
        "lockingScript": "0002e8036d76a9146cbd20c18911529dd4a707cbe7abcd296a097fe488ac",
        "spendable": true
      }
    ]
  }
}
```

The script carries 1000 token units and the UTXO carries 1000 satoshis: these are different quantities. Other assets are not included. The ISSUE derivation remains attached to this output in the wallet’s authoritative records.

### A.10. Authority inventory

Alice holds the admitted H deploy authority, independently of any H value balance.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDEw",
  "call": "listOutputs",
  "args": {
    "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority",
    "include": "locking scripts"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDEw",
  "status": "success",
  "result": {
    "totalOutputs": 1,
    "outputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "satoshis": 1000,
        "lockingScript": "00006d76a91475a06c850b20c3c7e7e9d607f2cc64ba885daaed88ac",
        "spendable": true
      }
    ]
  }
}
```

The wallet presents one minting authority and its control implications, not a fungible balance of zero units available for payment. It does not combine this inventory with the H value basket.

### A.11. Relinquishing tracking preserves key protection

Alice permits the application to stop tracking A in this basket.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDEx",
  "call": "relinquishOutput",
  "args": {
    "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0",
    "output": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDEx",
  "status": "success",
  "result": {
    "relinquished": true
  }
}
```

The organizational operation does not spend the outpoint or grant cryptographic access. A later module signature still requires full transaction validation and asset consent, even if the application supplies a different basket name or deletes its own metadata.

### A.12. Auxiliary cryptography is unavailable

A generic cryptographic permission was previously granted to this origin.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDEy",
  "call": "createHmac",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [1, 2, 3]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDEy",
  "status": "error",
  "description": "HMAC is unavailable for Colored Tokens keys",
  "code": 2
}
```

The reserved protocol dispatch wins over that grant. The same prohibition applies to encryption, decryption, HMAC verification and key-linkage disclosure; a public getPublicKey or verifySignature call does not grant any of these capabilities.

### A.13. A digest is not spend authorization

The application asks the protected key to sign a 32-byte digest directly.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDEz",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "seekPermission": true,
    "hashToDirectlySign": [17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDEz",
  "status": "error",
  "description": "Colored Tokens signing requires a transaction envelope",
  "code": 6
}
```

No signature is returned, regardless of a generic protocol grant. Supplying a bare serialized preimage as data is also insufficient.

### A.14. Automatic selection, change and signing

Alice owns only A for this asset, and no input is reserved. Her existing policy allows this 300-unit payment and the final satoshi consequences. The wallet’s next fresh change tuple is prefix CA==, suffix Ag==.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDE0",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The decoded plan carried by the labels is:

```json
{
  "version": 1,
  "assets": [
    "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0"
  ],
  "ownedOutputs": [],
  "operations": [
    {
      "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
      "operation": "transfer"
    }
  ],
  "inputPositions": [],
  "changePositions": [
    {
      "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
      "index": 1
    },
    {
      "assetId": null,
      "index": 2
    }
  ],
  "sighashTypes": []
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDE0",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
  }
}
```

The wallet selects e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0, derives its topic from the verified source, and checks current admission. It pays 300 A units to Bob, creates 700 A units of change at output 1, and ordinary satoshi change of 988 at output 2. Total satoshi input is 1000; output carriers are 1 and 1, ordinary change is 988, and the fee is 10. Alice’s token debit is 300 and satoshi debit is 11, of which 1 is Bob’s carrier and 10 is fee. Her own change carrier is not counted again as a bare-satoshi payment. After consensus validation and successful processing on the A topic, the wallet can expose the admitted change as spendable. No cryptographic call by the application is needed.

### A.15. Explicit managed input and remittance

Alice supplies the token outputs and original managed deploy input, with ordinary change constrained to output 2. Its authoritative source transaction is already in the wallet’s verified store.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDE1",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The decoded plan is:

```json
{
  "version": 1,
  "assets": [
    "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0"
  ],
  "ownedOutputs": [
    {
      "outputIndex": 1,
      "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
      "derivationPrefix": "CA==",
      "derivationSuffix": "Ag==",
      "senderIdentityKey": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
    }
  ],
  "operations": [
    {
      "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
      "operation": "transfer"
    }
  ],
  "inputPositions": [],
  "changePositions": [
    {
      "assetId": null,
      "index": 2
    }
  ],
  "sighashTypes": []
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDE1",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
  }
}
```

Txid-only BEEF entries are resolved against the verified store, then checked against current overlay responses. Explicitly naming the input does not make it foreign or bypass module permissions. The supplied input signature is complete; no unlockingScriptLength requests deferred signing here. The output-1 remittance must derive the actual P2PKH hash before its 700 units count as Alice’s change. The original ISSUE tuple was used to sign the input; the newly created change uses the established asset ID.

### A.16. Current overlay answer and provider trust

The same payment is requested with Alice’s policy already satisfied. The configured SLAP trackers resolve a trusted provider for this issuance ID.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDE2",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

Before signing, the wallet makes this BRC-24 lookup (it is an overlay request, not a CWI invocation):

```json
{
  "service": "ls_color_e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
  "query": {
    "type": "color-spendability",
    "version": 1,
    "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
    "topic": "tm_color_e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
    "outpoints": [
      "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0"
    ]
  }
}
```

The provider’s authenticated answer is:

```json
{
  "type": "output-list",
  "outputs": [
    {
      "outputIndex": 0,
      "beef": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229]
    }
  ]
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDE2",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
  }
}
```

In this fixture the txid-only entry resolves to the prevalidated A source body in the wallet’s store. The reconstructed outpoint, prefix, amount, role and script match. The service and topic are derived independently from the asset ID; the provider’s authenticated response supplies current membership. The lookup service remains free to implement unrelated queries as well.

### A.17. Absent current overlay membership

Alice requests the ordinary 300-unit payment, but the trusted lookup now returns the following valid negative answer:

```json
{
  "type": "output-list",
  "outputs": []
}
```

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDE3",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDE3",
  "status": "error",
  "description": "Selected token input is not currently admitted and unspent",
  "code": 1
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.18. Conflicting trusted providers

Two providers accepted under the wallet’s configured SLAP trust policy disagree: one returns A as admitted and unspent, the other returns an empty output-list. The wallet cannot establish current state.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDE4",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDE4",
  "status": "error",
  "description": "Conflicting overlay spendability answers",
  "code": 1
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.19. Unavailable overlay

The configured provider cannot be reached and the only cached answer is stale. An otherwise valid source proof and an existing spending allowance are available.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDE5",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDE5",
  "status": "error",
  "description": "Current overlay state is unavailable",
  "code": 1
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.20. Explicit input needs no topic hint

The explicit A source is authenticated and parsed by the wallet. The plan supplies no input-topic hints because version 1 has no such field.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDIw",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDIw",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
  }
}
```

The wallet derives A and its topic from the source, validates current membership and processes the same authorized transfer as A.15. No caller hint is needed or accepted.

### A.21. A plan cannot select a lookup service URL

The application adds a lookupURL field to an otherwise valid plan, attempting to choose the provider for A. Provider selection belongs to the wallet configuration.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDIx",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d2c226c6f6f6b757055524c223a2268747470733a2f2f6f7665726c61792e6578616d706c65227d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDIx",
  "status": "error",
  "description": "Unknown Colored Tokens plan member lookupURL",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.22. Known transactions cannot hide tokens

The application omits A from the declared asset set and operations, while the authenticated input and both requested outputs still encode A. It also asks to trust known transaction IDs.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDIy",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b5d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a2265353434356231363133363034343834643735356164376331363966336533",
      "p color plan 1 4 3766363361363836633864316231306533626165303737366538646233616130345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e",
      "p color plan 2 4 746974794b6579223a22303237396265363637656639646362626163353561303632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b5d2c22696e70",
      "p color plan 3 4 7574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false,
      "trustSelf": "known",
      "knownTxids": [
        "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04"
      ]
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDIy",
  "status": "error",
  "description": "Declared assets omit authenticated token A",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.23. Unresolved txid-only source

Unlike the other fixture cases, the wallet has no authoritative source body or SPV evidence for the txid-only inputBEEF entry. The caller’s stated amount cannot supply that evidence.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDIz",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDIz",
  "status": "error",
  "description": "Unable to authenticate input source",
  "code": 1
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.24. Insufficient eligible token balance

A has already been spent in the fixture chain. Alice has no other admitted, unreserved A value inputs; her ordinary satoshi balance is ample.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDI0",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDI0",
  "status": "error",
  "description": "Insufficient available Colored Tokens asset balance",
  "code": 7
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.25. Insufficient satoshi funding

The requested outputs total 1002 satoshis before fees; the only authorized funding input has 1000 and no additional eligible satoshi input is available.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDI1",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 1000,
        "outputDescription": "Additional ordinary payment"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDI1",
  "status": "error",
  "description": "Insufficient satoshis for outputs and fee",
  "code": 7
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.26. User declines the final action

No standing policy covers the ordinary 300-unit payment. The wallet shows the A issuance ID, recipient, 700-unit change, 1-satoshi recipient carrier and 10-satoshi fee. Alice chooses Cancel.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDI2",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDI2",
  "status": "error",
  "description": "User declined the Colored Tokens spend",
  "code": 1
}
```

No signatures are released. The provisional reservation is released, no allowance is consumed, and no action is submitted. A wallet may use a different UI or policy organization while reaching this outcome.

### A.27. No silent permission escalation

No applicable asset-spending permission exists, and the application forbids an interactive permission request.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDI3",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": false
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDI3",
  "status": "error",
  "description": "Colored Tokens spending permission is required",
  "code": 1
}
```

The wallet neither prompts nor signs. A monthly allowance, per-action approval or manifest-informed policy would be an implementation choice, but a generic key-use grant alone cannot satisfy the missing consent.

### A.28. Fixed-supply issuance

Alice authorizes a new fixed supply of 1000000 units. The deploy is output 0 and uses ISSUE with prefix CQ==.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDI4",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens issuance reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100c5d805453982b10c19f9bde6916d180bbd61d6a0415d8690d53009fe135a43d2022019a4dab39a1fb736771a8e201ab265fa3a9e561c190a8b4eb8e97590e6bd2a50412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "000340420f6d76a914cfebd325666fc742644d84fa85c1128d9cfa05ef88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b224953535545225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a224953535545222c2264657269766174696f6e507265666978",
      "p color plan 1 4 223a2243513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264",
      "p color plan 2 4 63653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a224953535545222c226f7065726174696f6e223a226465706c6f792d6669786564227d5d2c22696e707574506f73697469",
      "p color plan 3 4 6f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDI4",
  "status": "success",
  "result": {
    "txid": "b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98"
  }
}
```

The final asset ID is b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98\_0. The wallet assigns basket p color b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98v0 after finalization, preserves the ISSUE tuple, and credits only after current output admission.

### A.29. Authority issuance

Alice authorizes creation of a minting authority rather than a value supply. The output-0 amount is zero and the ISSUE prefix is Cg==.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDI5",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens authIssue reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "4730440220420e5dbf7f424af17daa81a6f3c544c067709fcb657fb78f3ac3d7006e2c29b00220726a1e8b32e68528ed797d858ee0ccef0004da360db61365d975674460b8fd50412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "00006d76a914b56375cded5b215c8c800e540ab328f49de71bd688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b224953535545225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a224953535545222c2264657269766174696f6e507265666978",
      "p color plan 1 4 223a2243673d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264",
      "p color plan 2 4 63653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a224953535545222c226f7065726174696f6e223a226465706c6f792d617574686f72697479227d5d2c22696e707574506f",
      "p color plan 3 4 736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDI5",
  "status": "success",
  "result": {
    "txid": "9512264e2e558ac823b36f5b1ffa9583fb9f7017f5b730f0313403b69256384e"
  }
}
```

The final asset ID is 9512264e2e558ac823b36f5b1ffa9583fb9f7017f5b730f0313403b69256384e\_0 and the automatic basket is p color 9512264e2e558ac823b36f5b1ffa9583fb9f7017f5b730f0313403b69256384ev0 authority. No zero-value fungible coin or global issuance basket is created.

### A.30. Mint and retain authority

Alice holds the admitted H authority and consents to minting 2500 H units while retaining a replacement authority.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDMw",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens mint reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 108, 125, 140, 21, 9, 60, 205, 168, 179, 15, 140, 109, 9, 65, 149, 59, 45, 142, 219, 37, 2, 55, 144, 50, 175, 69, 114, 37, 25, 72, 224, 236],
    "inputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "473044022074196ce70c25df70ee0ab86893faac2345067e998e56a065ebb732324b7810d8022077264f5fd7367d6e5125ec73db093cb9b15431016b752a8f94cc4d3c20d541914121035c5c837a779d6acfe11abe4470873cdb504c03d846c1ad2f258b0af22fce2ef8"
      }
    ],
    "outputs": [
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec02c4096d76a914ce01fe373d9791886679196eb9ac72a4c946acd488ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0"
      },
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a9142f3b4539d738c6eb2e2cd273b6b292bb190791bf88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
      }
    ],
    "labels": [
      "p color plan 0 9 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 9 757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 9 635f30222c2264657269766174696f6e507265666978223a2242773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 9 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d2c7b226f7574707574496e646578223a312c2261737365744964223a2265636530343831393235373234356166333239303337303232",
      "p color plan 4 9 3564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c2264657269766174696f6e507265666978223a2243773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e64",
      "p color plan 5 9 65724964656e746974794b6579223a22303237396265363637656639646362626163353561303632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b",
      "p color plan 6 9 7b2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a226d696e74227d2c",
      "p color plan 7 9 7b2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a22617574686f7269",
      "p color plan 8 9 74792d7472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDMw",
  "status": "success",
  "result": {
    "txid": "1d7b44a06c61bb36e7d7dfdd014f9a47dcbc43bd484e9fed48d4f2531a50d687"
  }
}
```

The value and authority outputs go to separate H baskets. Authority contributes zero to input value, but authorizes the new binary value output. The plan explicitly covers the replacement authority as well as minting.

### A.31. Split authority

Alice consents to replacing one admitted H authority with two independently spendable authorities.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDMx",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens splitAuth reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 108, 125, 140, 21, 9, 60, 205, 168, 179, 15, 140, 109, 9, 65, 149, 59, 45, 142, 219, 37, 2, 55, 144, 50, 175, 69, 114, 37, 25, 72, 224, 236],
    "inputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402200a8af39a7ea2b0405271b309f9fdefe8253ddb904e92b68f264807c88436699902202356ab9b53205fcd3d7937dcd99854ca219f39298cd9b2c32a9ff9c8b34ead304121035c5c837a779d6acfe11abe4470873cdb504c03d846c1ad2f258b0af22fce2ef8"
      }
    ],
    "outputs": [
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a914ce01fe373d9791886679196eb9ac72a4c946acd488ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
      },
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a9142f3b4539d738c6eb2e2cd273b6b292bb190791bf88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
      }
    ],
    "labels": [
      "p color plan 0 8 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 8 757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 8 635f30222c2264657269766174696f6e507265666978223a2242773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 8 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d2c7b226f7574707574496e646578223a312c2261737365744964223a2265636530343831393235373234356166333239303337303232",
      "p color plan 4 8 3564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c2264657269766174696f6e507265666978223a2243773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e64",
      "p color plan 5 8 65724964656e746974794b6579223a22303237396265363637656639646362626163353561303632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b",
      "p color plan 6 8 7b2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a22617574686f7269",
      "p color plan 7 8 74792d73706c6974227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDMx",
  "status": "success",
  "result": {
    "txid": "3db38d5f451b9f7050b12edc42bb22f44ed66f4361ea4727b7bc06d2512b64fa"
  }
}
```

Both zero-amount outputs enter the H authority basket after admission. The wallet explains the additional independent minting capability; zero net fungible debit does not remove consent.

### A.32. Combine authority inputs

The two outputs from the split-authority fixture have already been completed and admitted. Alice consents to consuming both and retaining one authority; the ordinary funding source is also available.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDMy",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens combine reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 250, 100, 43, 81, 210, 6, 188, 183, 39, 71, 234, 97, 67, 111, 214, 78, 244, 34, 187, 66, 220, 46, 177, 80, 112, 159, 27, 69, 95, 141, 179, 61, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "3db38d5f451b9f7050b12edc42bb22f44ed66f4361ea4727b7bc06d2512b64fa.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "4730440220310a6b452e5e965f904e779e35429ab88514d25b1a58046dbe9cca7be0ce49e502205d7f7f92e1916f16d7f53e95a88d4d3d2f804177305d59c41dc53efca95d84d541210296888d486bec6ca6236f09ca9742ef30349760228d6b0e0a6df2bb454492727c"
      },
      {
        "outpoint": "3db38d5f451b9f7050b12edc42bb22f44ed66f4361ea4727b7bc06d2512b64fa.1",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "473044022100b22d494f1e0caec6e9719fb48d0b7ebb64dfc39285d758713ff73d72579dca7e021f66633a05f019fee515840eca0333c011c2fda71cdb46d198bc99442b82663b4121020a393a5d067f0d3c32f03035020f61a7e6c04ef27d785bddc7fed39711deacfd"
      },
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 2",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100b7c63eeac4cafe632ee6e7902d36fda3613badb89fb49c8cdeba22e19d8f09b502207dff464edf21bcdf83006a0127f0cc3660232099c03aaaba50369cff19e5d377412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a9149d5932644941eb104b29ea290cd15b6b80c8ce2a88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 6 635f30222c2264657269766174696f6e507265666978223a2244413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226563653034383139323537323435616633323930333730323235",
      "p color plan 4 6 64623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a22617574686f726974792d636f6d62696e65227d5d2c22696e707574506f736974696f6e73223a5b5d2c22636861",
      "p color plan 5 6 6e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDMy",
  "status": "success",
  "result": {
    "txid": "bb0530f14fe9fc2c73be026275f0043fa9f4258be7fcb59dfe621d3124d9106c"
  }
}
```

Both consumed authority outpoints, including vout 1, receive their own current lookup. Their key tuples and signatures remain distinct. One new authority is tracked; the fee is paid from satoshis, never from a numeric authority balance.

### A.33. Transfer authority to another owner

Alice consents to transferring the H minting capability to Bob, whose destination key is not hers.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDMz",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens moveAuth reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 108, 125, 140, 21, 9, 60, 205, 168, 179, 15, 140, 109, 9, 65, 149, 59, 45, 142, 219, 37, 2, 55, 144, 50, 175, 69, 114, 37, 25, 72, 224, 236],
    "inputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100af5b110db4882aefd956997fbc50e84f07daf535ac7c23a9afa80555c2156da202207015fabec98584709653e5ced0ab94c527ebea6372b7d71ddef039c7d06c57ce4121035c5c837a779d6acfe11abe4470873cdb504c03d846c1ad2f258b0af22fce2ef8"
      }
    ],
    "outputs": [
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a914370babff5d3708da069e72279fea99962f0124cf88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 4 635f30222c226f7065726174696f6e223a22617574686f726974792d7472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e6465",
      "p color plan 3 4 78223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDMz",
  "status": "success",
  "result": {
    "txid": "1cbc904840983aa6a5c1f9ac2aa9062e7465a7100a96416e4ca6de3b97bbe201"
  }
}
```

No new H authority is credited to Alice. The UI identifies the delegation to Bob rather than presenting it as a zero-unit payment.

### A.34. End an authority

Alice consents to destroying this H authority without a replacement. The wallet knows it is the only remaining admitted H authority in this fixture.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDM0",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens endAuth reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 108, 125, 140, 21, 9, 60, 205, 168, 179, 15, 140, 109, 9, 65, 149, 59, 45, 142, 219, 37, 2, 55, 144, 50, 175, 69, 114, 37, 25, 72, 224, 236],
    "inputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100812fe665adbacc10cfcddfe6c7bd7151c471dca7671702ab8630690c7636bc9e0220651ae53497e24db1b88cb6fa4194443e97fbfd3299e76cbbf75f86734e636f974121035c5c837a779d6acfe11abe4470873cdb504c03d846c1ad2f258b0af22fce2ef8"
      }
    ],
    "outputs": [
      {
        "lockingScript": "006a",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 4 635f30222c226f7065726174696f6e223a22617574686f726974792d656e64227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d",
      "p color plan 3 4 5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDM0",
  "status": "success",
  "result": {
    "txid": "5bcf30ba536401451d3d844d7e93e29f3c39c48d15bb7bb0fadf28303f8def36"
  }
}
```

There is no replacement authority. In this stated fixture minting ends. Ending one authority would not establish that minting had ended if other authorities remained.

### A.35. Explicit value burn

Alice consents to destroying all 1000 A units. The non-token data output receives one satoshi; 989 ordinary satoshis return to Alice and the fee is 10.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDM1",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens burn reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "473044022028a1fb33a715e205898650e72470b248547f86f861bc6705dd97d2b694f23684022064c1da2c6f701f4784808c37218f64231626bda466d89a47e6b3e9681653e299412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "006a",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a226275726e227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173",
      "p color plan 3 4 685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDM1",
  "status": "success",
  "result": {
    "txid": "622e19b68192bd9bee2625e4e01a6a2971d92b0425c84bdf68dc900c53452440"
  }
}
```

The burn is a separately consented consequence, not a fee or a payment to another asset. No replacement A balance is created.

### A.36. A transfer declaration cannot authorize a burn

The transaction spends A but creates no A outputs. The plan only declares transfer.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDM2",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens burn reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "473044022028a1fb33a715e205898650e72470b248547f86f861bc6705dd97d2b694f23684022064c1da2c6f701f4784808c37218f64231626bda466d89a47e6b3e9681653e299412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "006a",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c227369",
      "p color plan 3 4 67686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDM2",
  "status": "error",
  "description": "Undeclared Colored Tokens burn",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.37. Over-output value transition

The first output now encodes 301 units while the change still encodes 700. The input contains exactly 1000 and no authority. Losing one unit of coverage would invalidate all value outputs of this asset under BRC-162.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDM3",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022d016d76a914d70bcb7e47c238c22be672040bd7565c5f003bc688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDM3",
  "status": "error",
  "description": "Token outputs exceed authenticated input balance",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.38. Exact uint64 amount and display decimals

Alice authorizes a fixed-supply deploy at the maximum BRC-162 amount. The payload is a DAG-CBOR map with dec:18 and sym:G.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDM4",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens maxIssue reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "4830450221009717cf34d124cb19d5a84d4e31113af0fb0c8e9366da4959cba6d58fc9f6b3db0220545b765525f2ee34d26e227f438d12de6d7a027bf48de2c4d930b444cb546871412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "0009ffffffffffffffff006d0ca263646563126373796d61477576a9149850e952220eede3e0e72e72f8978ff03a92caa988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b224953535545225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a224953535545222c2264657269766174696f6e507265666978",
      "p color plan 1 4 223a2244773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264",
      "p color plan 2 4 63653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a224953535545222c226f7065726174696f6e223a226465706c6f792d6669786564227d5d2c22696e707574506f73697469",
      "p color plan 3 4 6f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDM4",
  "status": "success",
  "result": {
    "txid": "520f26d99fd56c7720ee96497b17a04d2b7c845eb6bce3b4682eec06bf36a5f1"
  }
}
```

The script amount is exactly 18446744073709551615 units; the display may be 18.446744073709551615 G. Neither JavaScript floating-point rounding nor display decimals may change the integer. The maximum uses a nine-byte minimal positive script number. Aggregates of multiple such inputs use wider exact arithmetic even though each output remains within uint64. Unknown or malformed display fields in a valid map are ignored for display, not used to create supply. A nonempty payload that is not a valid DAG-CBOR map has no defined attributes; inherited deploy requirements still apply.

### A.39. Deploy at an invalid output position

The caller requests a BRC-162 deploy at output 1 and preserves output order.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDM5",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens issuance reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScriptLength": 106
      }
    ],
    "outputs": [
      {
        "lockingScript": "006a",
        "satoshis": 1,
        "outputDescription": "Leading non-token data output"
      },
      {
        "lockingScript": "000340420f6d76a914cfebd325666fc742644d84fa85c1128d9cfa05ef88ac",
        "satoshis": 1,
        "outputDescription": "Invalid deploy at output 1"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b224953535545225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a224953535545222c2264657269766174696f6e507265666978",
      "p color plan 1 4 223a2243513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264",
      "p color plan 2 4 63653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a224953535545222c226f7065726174696f6e223a226465706c6f792d6669786564227d5d2c22696e707574506f73697469",
      "p color plan 3 4 6f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDM5",
  "status": "error",
  "description": "BRC-162 deploy must be output zero",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.40. Receive legacy supply and spend in binary form

The L fixture is an admitted BRC-161 deploy+mint held by Alice with the preserved ISSUE tuple and one satoshi. The ordinary funding input supplies the remaining satoshis.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQw",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens legacyTransfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 81, 163, 105, 87, 99, 203, 143, 187, 119, 20, 243, 224, 157, 22, 131, 97, 82, 145, 212, 105, 40, 31, 180, 156, 189, 32, 243, 94, 64, 184, 201, 50, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "32c9b8405ef320bd9cb41f2869d491526183169de0f31477bb8fcb635769a351.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402203864e78b420639c6e92d66fc968639cffcc3d7de9fcfecf79b2b0b4ea71bd7fb02202539881148d137c05f3023541b4f95553ab8026d8948bc88d9955de4e368307441210216a78007b6f035e189d8395f8b41b75244b5eb07874245d1181c0267c06fa1d9"
      },
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100a16e78ecedefe7b654f7a12b17b4ba073a47fa8271dc5f43403951090b57e132022064508eaab424448683d29d3b2f206bb57b65b64d2cc688eb68475367eaadf609412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2051a3695763cb8fbb7714f3e09d1683615291d469281fb49cbd20f35e40b8c9320258026d76a914ed54bf58ddad122587bd922380ca1e49ce1b63e088ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2051a3695763cb8fbb7714f3e09d1683615291d469281fb49cbd20f35e40b8c9320290016d76a914e1c69924d8e7dcd97d02caaf5721fcf08be6105288ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color 32c9b8405ef320bd9cb41f2869d491526183169de0f31477bb8fcb635769a351v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22333263396238343035656633323062643963623431663238363964343931353236313833313639646530663331343737626238666362363335373639613335315f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22333263396238343035656633323062643963623431663238363964343931353236313833313639646530663331343737626238666362363335373639613335",
      "p color plan 2 6 315f30222c2264657269766174696f6e507265666978223a2244673d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a223332633962383430356566333230626439636234316632383639",
      "p color plan 4 6 64343931353236313833313639646530663331343737626238666362363335373639613335315f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQw",
  "status": "success",
  "result": {
    "txid": "b543564e9223703056e248167f962659b4c559a6e803ea3befc5551b2fea4a5d"
  }
}
```

The legacy source carries 1000 units with display dec:"2". The new outputs use BRC-162, sending 600 units to Bob and 400 to Alice. They retain the same L issuance ID and basket identity across encodings. The wallet validates the old encoding; it does not assume that any unrelated BSV-20 basket or preexisting module is interoperable.

### A.41. Two-asset swap

Alice provides A and Bob provides B. Bob has supplied a valid unlocking script for the exact final transaction. Alice consents to exchanging all 1000 A units for 2000 B units.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQx",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens swap reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402204e2757151e54a28d80e672b83cf430d3ecd6b2c6de7ce47023760cb695c922870220594931a3004c2e1f08b3834bb1ddf37b269f1481d1c3576ab54836e21d865bf7412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100f3e0efe667230ecd9f750e5c1c3348ee89dadd25cff11ad70ed90a0e131d7ab402200119a0d91d3d766a29fbc23f1ac07a20d6fb01f05306ec1870f59f79256d403c4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "20a17ef53d1575a70bb727fd09ae1727270e81ba78af0d015890e67a6fde6563b702d0076d76a91444990bee442fb159a9caaa597b98992d2d8d698688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 999,
        "outputDescription": "Agreed output 2"
      }
    ],
    "labels": [
      "p color plan 0 8 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2262373633363564",
      "p color plan 1 8 6536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 8 744964223a22623736333635646536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30222c2264657269766174696f6e507265666978223a2242773d3d222c",
      "p color plan 3 8 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 8 32383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538",
      "p color plan 5 8 646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a226237363336356465366637616536393035383031306461663738626138313065323732373137616530396664323762373062613737",
      "p color plan 6 8 35313533646635376561315f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e6465",
      "p color plan 7 8 78223a337d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQx",
  "status": "success",
  "result": {
    "txid": "a85bb1cd5778cdd0c8606f6c640e96c2ad5779579ee6f6dad0edbf1c00360196"
  }
}
```

Both current overlays are checked. The wallet shows A debit 1000 and B credit 2000 as separate legs, with a 10-satoshi net cost to Alice. Bob’s input is authenticated before it offsets any funding requirement. Its admission is not inferred from the A overlay.

### A.42. Three-asset composable swap

Alice contributes A and C while Bob contributes B, with the requested output order fixed.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQy",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens three reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 71, 125, 237, 175, 241, 55, 176, 194, 91, 25, 15, 186, 60, 120, 14, 58, 52, 158, 229, 193, 145, 71, 151, 51, 186, 214, 251, 133, 231, 251, 251, 145],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100959896e1cd8d49db936a61d8894ac2c52efa315bd93be039d226f122c2957be8022053311c7e7e9ba79fc6dd07da579670ff286b00a35c9bad10cd7f0a21a489028a412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402201ce51f3acff8617c93c88ffd6732a192a6d235d402663d314b5ea78691b5d465022051724c860e5ad19b60a61e52133ebca5871e41674a512b5f8a9509b734840f9a4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      },
      {
        "outpoint": "91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47.0",
        "inputDescription": "Authenticated input 2",
        "sequenceNumber": 4294967295,
        "unlockingScript": "4830450221008603807473b5cd00c78fc71f92ea59fb6069bb201da2080656a04fc250ecabf7022059f7a60c76d7b313a08af096a3cf4f9b501684c44638a8ead7cb72e414c7504e4121034fc95ac842ac9d727b76b982dd4b4dc7b6a82a8c2cd49f5609c86bdbe986fc8a"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "20a17ef53d1575a70bb727fd09ae1727270e81ba78af0d015890e67a6fde6563b702d0076d76a91444990bee442fb159a9caaa597b98992d2d8d698688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0"
      },
      {
        "lockingScript": "20477dedaff137b0c25b190fba3c780e3a349ee5c191479733bad6fb85e7fbfb9102b80b6d76a914d85945b6c0fb8d8e9985024ff702f38d5d5f86f388ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 2"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 998,
        "outputDescription": "Agreed output 3"
      }
    ],
    "labels": [
      "p color plan 0 9 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2262373633363564",
      "p color plan 1 9 6536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30222c223931666266626537383566626436626133333937343739316331653539653334336130653738",
      "p color plan 2 9 33636261306631393562633262303337663161666564376434375f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a2262373633363564653666376165363930353830313064616637",
      "p color plan 3 9 3862613831306532373237313761653039666432376237306261373735313533646635376561315f30222c2264657269766174696f6e507265666978223a2242773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e64",
      "p color plan 4 9 65724964656e746974794b6579223a22303237396265363637656639646362626163353561303632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b",
      "p color plan 5 9 7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e736665",
      "p color plan 6 9 72227d2c7b2261737365744964223a22623736333635646536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30222c226f7065726174696f6e223a22747261",
      "p color plan 7 9 6e73666572227d2c7b2261737365744964223a22393166626662653738356662643662613333393734373931633165353965333433613065373833636261306631393562633262303337663161666564376434375f30222c226f7065726174696f6e223a",
      "p color plan 8 9 227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a347d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQy",
  "status": "success",
  "result": {
    "txid": "31a5175d4b65aaaeddadc04e46fb348c0ab462d3dadf698d5667ecd09b16b2a0"
  }
}
```

The wallet presents debits of 1000 A and 3000 C, credit of 2000 B, and Alice’s 10-satoshi cost. None of the asset amounts cancel across issuance IDs. All three overlays, three inputs and five outputs are validated before automatic signing.

### A.43. Sell tokens for ordinary satoshis

Alice exchanges 1000 A units with Bob for a 5000-satoshi contribution. The source token carrier also contains 1000 satoshis.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQz",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens sell reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402207af54f25df445bdb6cd172a57ba5216af2277b0e73b77b3f97d658f5590c73ee022067f8255717f7bbe3d91e64fd241fd3fbb9c075c9bf1090bb971a38583d0de4f1412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "3d41442b05101fe2b9dc74e24853cb278b2e9494b3d78452b0e858b991bce28e.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100a0ddc115675c11d6ad4ef023d7df6cd2272fe4b1440d38086ce9990453c3e38f02202e7ed5cf7c956a83d69f2da2568ca943f47ef140291349f19e2dd30645d8fe4b412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 4999,
        "outputDescription": "Agreed output 1"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369",
      "p color plan 3 4 67686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQz",
  "status": "success",
  "result": {
    "txid": "b598ba8de38ed34ce74dad2637bfdf73d68ed0a13ebc9f7f5e2b86ad6333ff65"
  }
}
```

Alice receives 5990 ordinary satoshis in the final layout: her released 1000 carrier satoshis plus 5000 from Bob minus a 10-satoshi fee. Her net satoshi increase is 4990. Bob receives the token in a 1-satoshi carrier and 4999 ordinary change. The 5000 contribution is a swap leg; carrier and fee accounting remain explicit.

### A.44. Buy tokens with ordinary satoshis

Alice contributes the 10000-satoshi ordinary funding input and buys Bob’s 2000 B units.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQ0",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens buy reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100da18490509afbcb2e1e2d1154b6364f2cfccebd3a8cee6865b3e13ab7b81fbcd022007d6615ab66e16f8662b6f26ec24393883e5884d6475b6e39798589ec9b5d9a74121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      },
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "4830450221008b73a5d16532772dee999c3185e524e6017d172a364363177a28e25094a19f8a02203218bf0554d9eb44f7671ce0f06b60d9df969774ee10503bd7b8e1b62433f9db412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "20a17ef53d1575a70bb727fd09ae1727270e81ba78af0d015890e67a6fde6563b702d0076d76a91444990bee442fb159a9caaa597b98992d2d8d698688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0",
        "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 5990,
        "outputDescription": "Agreed output 1"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22623736333635646536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a22623736333635646536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561",
      "p color plan 2 6 315f30222c2264657269766174696f6e507265666978223a2242773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226237363336356465366637616536393035383031306461663738",
      "p color plan 4 6 62613831306532373237313761653039666432376237306261373735313533646635376561315f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQ0",
  "status": "success",
  "result": {
    "txid": "45f6002f4de3b25501dea6c12a75b6a6de79b859a95a48a6ec7df0eef2ba298d"
  }
}
```

Alice receives 2000 B units on a 1-satoshi output and 4999 ordinary change: a net satoshi debit of 5000 including her new carrier. Bob receives 5990 ordinary satoshis after paying the 10-satoshi fee from the combined layout. Normal satoshi policy, including DSAP if implemented, applies in addition to token policy.

### A.45. Foreign script input with valid execution

Alice exchanges A for F. The admitted F deploy uses OP\_2 OP\_EQUAL after its token prefix, and the caller supplies unlocking script 52.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQ1",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens foreign reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 116, 244, 113, 121, 41, 186, 221, 99, 164, 186, 213, 203, 120, 134, 20, 154, 145, 205, 234, 135, 247, 200, 9, 210, 209, 144, 73, 20, 226, 226, 211, 94],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402207e2da7e5cb5ce2c14985c2e069002c5c0434b3b1e7983d85262b8cb7ba70ee7102202b2e72386c3e15fcb05d27d8b3bb1a6a4a9b198c7f586a6d14d853619220be54412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "52"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2074f4717929badd63a4bad5cb7886149a91cdea87f7c809d2d1904914e2e2d35e02d0076d76a91486f9dbe298d4239ea2fc02b77a95db6e74e13eca88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color 5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 999,
        "outputDescription": "Agreed output 2"
      }
    ],
    "labels": [
      "p color plan 0 8 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2235656433653265",
      "p color plan 1 8 3231343439393064316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 8 744964223a22356564336532653231343439393064316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30222c2264657269766174696f6e507265666978223a2242773d3d222c",
      "p color plan 3 8 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 8 32383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538",
      "p color plan 5 8 646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a223565643365326532313434393930643164323039633866373837656163643931396131343836373863626435626161343633646462",
      "p color plan 6 8 61323937393731663437345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e6465",
      "p color plan 7 8 78223a337d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQ1",
  "status": "success",
  "result": {
    "txid": "a8c26eee7da4265bc1af05df20cc8130f5095aa1aeeab70c6c459f23d3f66a70"
  }
}
```

The wallet authenticates F’s source and overlay membership before crediting its incoming amount. It executes the foreign script successfully, checks conservation for A and F, and manages only the newly created F P2PKH output addressed to Alice. The foreign source was never assumed to be a wallet-managed P2PKH coin.

### A.46. Invalid provided foreign unlocking script

All source and overlay checks succeed, but the provided foreign unlocking script fails OP\_2 OP\_EQUAL.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQ2",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens foreign reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 116, 244, 113, 121, 41, 186, 221, 99, 164, 186, 213, 203, 120, 134, 20, 154, 145, 205, 234, 135, 247, 200, 9, 210, 209, 144, 73, 20, 226, 226, 211, 94],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402207e2da7e5cb5ce2c14985c2e069002c5c0434b3b1e7983d85262b8cb7ba70ee7102202b2e72386c3e15fcb05d27d8b3bb1a6a4a9b198c7f586a6d14d853619220be54412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "51"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2074f4717929badd63a4bad5cb7886149a91cdea87f7c809d2d1904914e2e2d35e02d0076d76a91486f9dbe298d4239ea2fc02b77a95db6e74e13eca88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color 5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 999,
        "outputDescription": "Agreed output 2"
      }
    ],
    "labels": [
      "p color plan 0 8 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2235656433653265",
      "p color plan 1 8 3231343439393064316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 8 744964223a22356564336532653231343439393064316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30222c2264657269766174696f6e507265666978223a2242773d3d222c",
      "p color plan 3 8 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 8 32383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538",
      "p color plan 5 8 646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a223565643365326532313434393930643164323039633866373837656163643931396131343836373863626435626161343633646462",
      "p color plan 6 8 61323937393731663437345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e6465",
      "p color plan 7 8 78223a337d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQ2",
  "status": "error",
  "description": "Foreign input script validation failed",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.47. Create an offer before the other party signs

Alice proposes the same two-asset swap but Bob has not provided his unlocking script. Alice authorizes a pending offer whose ALL|FORKID signature binds both named inputs and all outputs. Her wallet has applied its configured A/B provider and counterparty-acceptance policy and verified the settlement safeguards assumed by this fixture.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQ3",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens swap reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScriptLength": 106
      },
      {
        "outpoint": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScriptLength": 107
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "20a17ef53d1575a70bb727fd09ae1727270e81ba78af0d015890e67a6fde6563b702d0076d76a91444990bee442fb159a9caaa597b98992d2d8d698688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 999,
        "outputDescription": "Agreed output 2"
      }
    ],
    "labels": [
      "p color plan 0 8 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2262373633363564",
      "p color plan 1 8 6536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 8 744964223a22623736333635646536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30222c2264657269766174696f6e507265666978223a2242773d3d222c",
      "p color plan 3 8 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 8 32383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538",
      "p color plan 5 8 646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a226237363336356465366637616536393035383031306461663738626138313065323732373137616530396664323762373062613737",
      "p color plan 6 8 35313533646635376561315f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e6465",
      "p color plan 7 8 78223a337d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQ3",
  "status": "success",
  "result": {
    "signableTransaction": {
      "tx": [1, 1, 1, 1, 152, 218, 212, 126, 194, 31, 61, 68, 153, 28, 91, 7, 54, 249, 60, 118, 54, 236, 39, 135, 147, 145, 30, 39, 36, 162, 194, 47, 126, 130, 222, 63, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 0, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
      "reference": "bWFuZGFsYS1zd2FwLTAwMDE="
    }
  }
}
```

The wallet returns a pending reference and a partially signed subject: Alice’s input is signed, Bob’s is empty. Sources, current overlays and token amounts have been validated, but the transaction cannot yet complete. The wallet reserves A and records the released capability; it does not credit B or claim overlay admission. The signature binds transaction terms, while admission still depends on both topics. Bob’s future signature can be exchanged separately. This response also illustrates signAndProcess:false without a new core API.

### A.48. Complete the pending swap

Start with the independently established pending offer described in A.47. Both named token sources remain admitted and unspent, and the permission still covers the offer. Bob supplies his exact final script.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQ4",
  "call": "signAction",
  "args": {
    "reference": "bWFuZGFsYS1zd2FwLTAwMDE=",
    "spends": {
      "1": {
        "unlockingScript": "483045022100f3e0efe667230ecd9f750e5c1c3348ee89dadd25cff11ad70ed90a0e131d7ab402200119a0d91d3d766a29fbc23f1ac07a20d6fb01f05306ec1870f59f79256d403c4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      }
    },
    "options": {
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQ4",
  "status": "success",
  "result": {
    "txid": "a85bb1cd5778cdd0c8606f6c640e96c2ad5779579ee6f6dad0edbf1c00360196"
  }
}
```

The wallet preserves the pending plan and previously committed fields, refreshes every involved overlay, validates both complete input scripts, and processes the transaction on both asset topics. It consumes the existing authorization record once. It records actual admission results before making incoming B spendable.

### A.49. Counterparty input spent before completion

Start with the pending offer in A.47, but Bob’s named B outpoint has now been consumed by a different valid transaction.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDQ5",
  "call": "signAction",
  "args": {
    "reference": "bWFuZGFsYS1zd2FwLTAwMDE=",
    "spends": {
      "1": {
        "unlockingScript": "483045022100f3e0efe667230ecd9f750e5c1c3348ee89dadd25cff11ad70ed90a0e131d7ab402200119a0d91d3d766a29fbc23f1ac07a20d6fb01f05306ec1870f59f79256d403c4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      }
    },
    "options": {
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDQ5",
  "status": "error",
  "description": "Counterparty token input is no longer spendable",
  "code": 1
}
```

The wallet fails completion and does not replace the named input or reuse Alice’s signature on changed terms. Because Alice’s released signature commits that outpoint, the old offer cannot complete after the conflict. The wallet updates exposure once the conflict is authoritatively established.

### A.50. Reject an invalid completion script

Start with the pending offer in A.47. The caller supplies an invalid P2PKH unlocking script for Bob.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDUw",
  "call": "signAction",
  "args": {
    "reference": "bWFuZGFsYS1zd2FwLTAwMDE=",
    "spends": {
      "1": {
        "unlockingScript": "51"
      }
    },
    "options": {
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDUw",
  "status": "error",
  "description": "Input script validation failed",
  "code": 6
}
```

The action remains pending; no completed transaction is returned or processed. Alice’s released capability and reservation are retained. Missing foreign scripts may be deferred in a partial offer, but invalid supplied scripts cannot be accepted as a completed spend.

### A.51. Previously committed fields cannot change silently

Start with the pending offer in A.47. The caller changes Bob’s sequence while supplying the old unlocking script.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDUx",
  "call": "signAction",
  "args": {
    "reference": "bWFuZGFsYS1zd2FwLTAwMDE=",
    "spends": {
      "1": {
        "unlockingScript": "483045022100f3e0efe667230ecd9f750e5c1c3348ee89dadd25cff11ad70ed90a0e131d7ab402200119a0d91d3d766a29fbc23f1ac07a20d6fb01f05306ec1870f59f79256d403c4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb",
        "sequenceNumber": 4294967294
      }
    },
    "options": {
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDUx",
  "status": "error",
  "description": "Completion changes previously committed transaction fields",
  "code": 6
}
```

The existing ALL|FORKID authorization and signatures do not cover this change. The wallet rejects this completion. A separately revalidated action with consent and new signatures may use a different sequence; an old reference does not waive those requirements.

### A.52. ALL transaction signature

The source is A, using its original ISSUE tuple. The application requests a signature for the unsigned transfer subject; the wallet validates its source, topic and prospective output ownership. The signature commits every input outpoint and every output. The transfer terms and 700-unit change are bound.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDUy",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The decoded data envelope is:

```json
{
  "version": 1,
  "tx": [1, 1, 1, 1, 76, 19, 219, 198, 231, 103, 161, 231, 249, 22, 41, 70, 110, 10, 145, 157, 171, 187, 103, 146, 172, 73, 29, 9, 203, 92, 140, 231, 159, 8, 20, 92, 2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 1, 0, 0, 0, 1, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 0, 255, 255, 255, 255, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 44, 1, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 188, 2, 109, 118, 169, 20, 197, 248, 172, 11, 49, 150, 233, 155, 255, 17, 106, 15, 201, 180, 26, 129, 151, 72, 26, 9, 136, 172, 220, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
  "inputIndex": 0,
  "sighashType": 65,
  "ownedOutputs": [
    {
      "outputIndex": 1,
      "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
      "derivationPrefix": "CA==",
      "derivationSuffix": "Ag==",
      "senderIdentityKey": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
    }
  ]
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDUy",
  "status": "success",
  "result": {
    "signature": [48, 69, 2, 33, 0, 230, 211, 128, 197, 139, 58, 41, 235, 150, 216, 47, 69, 115, 158, 17, 71, 10, 16, 219, 11, 105, 179, 121, 227, 179, 113, 239, 18, 99, 254, 51, 167, 2, 32, 115, 136, 26, 81, 11, 237, 158, 175, 95, 45, 166, 12, 25, 3, 147, 82, 225, 55, 152, 6, 78, 221, 152, 206, 168, 20, 249, 193, 219, 184, 26, 206]
  }
}
```

The wallet computes the consensus preimage itself, obtains consent covering the actual commitment, atomically reserves the input and returns DER low-S signature bytes without a sighash byte. The application appends the requested flag when constructing the unlocking script. A different consensus-valid signature nonce may produce different DER bytes; the digest and successful verification are the conformance criteria. Revalidation on later wallet completion cannot constrain an external party holding this signature.

### A.53. NONE transaction signature

The source is A, using its original ISSUE tuple. The application requests a signature for the unsigned transfer subject; the wallet validates its source, topic and prospective output ownership. The signature commits input outpoints but no outputs. Alice has instead authorized an irrevocable, unconditional disposition of the entire 1000-unit input and its carrier satoshis at signature release. The illustrated 300-unit payment and change are not promised consideration; any valid completion remains within that already authorized disposition.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDUz",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 54, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDUz",
  "status": "success",
  "result": {
    "signature": [48, 69, 2, 33, 0, 214, 127, 185, 71, 19, 39, 240, 162, 114, 215, 40, 50, 70, 129, 73, 251, 95, 25, 166, 77, 161, 232, 149, 82, 169, 53, 212, 215, 39, 181, 73, 106, 2, 32, 65, 121, 201, 253, 140, 129, 78, 217, 40, 254, 189, 68, 120, 81, 206, 43, 77, 34, 85, 37, 106, 46, 196, 18, 138, 196, 14, 200, 15, 19, 131, 44]
  }
}
```

The wallet computes the consensus preimage itself, obtains consent covering the actual commitment, atomically reserves the input and returns DER low-S signature bytes without a sighash byte. The application appends the requested flag when constructing the unlocking script. A different consensus-valid signature nonce may produce different DER bytes; the digest and successful verification are the conformance criteria. Revalidation on later wallet completion cannot constrain an external party holding this signature.

### A.54. SINGLE transaction signature

The source is A, using its original ISSUE tuple. The application requests a signature for the unsigned transfer subject; the wallet validates its source, topic and prospective output ownership. Input 0 commits only output 0: Bob’s 300-unit output. Alice has authorized the remaining 700 units and affected satoshis as an unconditional disposition at signature release. Output 0 is binding, while the illustrated change is not promised consideration; no later completion can worsen the disposition she authorized.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDU0",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 55, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDU0",
  "status": "success",
  "result": {
    "signature": [48, 68, 2, 32, 127, 224, 178, 143, 47, 4, 162, 212, 129, 230, 226, 120, 61, 225, 181, 200, 180, 198, 60, 221, 161, 118, 30, 53, 166, 69, 250, 144, 164, 83, 206, 115, 2, 32, 40, 26, 233, 201, 17, 14, 2, 249, 247, 204, 52, 61, 253, 58, 129, 163, 221, 204, 14, 250, 47, 208, 13, 7, 22, 12, 224, 222, 98, 211, 244, 167]
  }
}
```

The wallet computes the consensus preimage itself, obtains consent covering the actual commitment, atomically reserves the input and returns DER low-S signature bytes without a sighash byte. The application appends the requested flag when constructing the unlocking script. A different consensus-valid signature nonce may produce different DER bytes; the digest and successful verification are the conformance criteria. Revalidation on later wallet completion cannot constrain an external party holding this signature.

### A.55. ALL with ANYONECANPAY transaction signature

The source is A, using its original ISSUE tuple. The application requests a signature for the unsigned transfer subject; the wallet validates its source, topic and prospective output ownership. All outputs are committed, but other input outpoints are not. The wallet does not claim hashPrevouts binds a named counterparty UTXO. In this one-input reference transfer the input itself and its fixed outputs remain bound.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDU1",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 49, 57, 51, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDU1",
  "status": "success",
  "result": {
    "signature": [48, 69, 2, 33, 0, 190, 234, 39, 47, 52, 246, 56, 210, 28, 12, 243, 49, 23, 79, 126, 235, 217, 144, 107, 39, 34, 193, 63, 229, 97, 123, 137, 102, 248, 62, 169, 30, 2, 32, 23, 134, 32, 168, 195, 156, 237, 197, 147, 114, 98, 19, 2, 37, 230, 70, 218, 41, 60, 18, 207, 205, 138, 178, 112, 224, 59, 16, 183, 37, 33, 98]
  }
}
```

The wallet computes the consensus preimage itself, obtains consent covering the actual commitment, atomically reserves the input and returns DER low-S signature bytes without a sighash byte. The application appends the requested flag when constructing the unlocking script. A different consensus-valid signature nonce may produce different DER bytes; the digest and successful verification are the conformance criteria. Revalidation on later wallet completion cannot constrain an external party holding this signature.

### A.56. NONE with ANYONECANPAY transaction signature

The source is A, using its original ISSUE tuple. The application requests a signature for the unsigned transfer subject; the wallet validates its source, topic and prospective output ownership. Neither other inputs nor any outputs are committed. Alice authorizes the entire 1000 units and their carrier satoshis as an irrevocable, unconditional disposition at signature release. No receipt, change or counterparty action is a condition of that disposition.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDU2",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 49, 57, 52, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDU2",
  "status": "success",
  "result": {
    "signature": [48, 69, 2, 33, 0, 134, 23, 254, 177, 20, 235, 146, 239, 189, 255, 81, 74, 213, 111, 243, 9, 18, 240, 1, 54, 9, 45, 164, 25, 40, 72, 179, 78, 67, 76, 232, 200, 2, 32, 74, 155, 154, 152, 159, 130, 250, 10, 1, 9, 74, 21, 193, 213, 98, 78, 85, 22, 153, 157, 115, 112, 17, 191, 77, 69, 80, 44, 104, 104, 76, 75]
  }
}
```

The wallet computes the consensus preimage itself, obtains consent covering the actual commitment, atomically reserves the input and returns DER low-S signature bytes without a sighash byte. The application appends the requested flag when constructing the unlocking script. A different consensus-valid signature nonce may produce different DER bytes; the digest and successful verification are the conformance criteria. Revalidation on later wallet completion cannot constrain an external party holding this signature.

### A.57. SINGLE with ANYONECANPAY transaction signature

The source is A, using its original ISSUE tuple. The application requests a signature for the unsigned transfer subject; the wallet validates its source, topic and prospective output ownership. Only the signing input and its corresponding output are committed. Alice authorizes the remaining value and affected satoshis as an unconditional disposition at signature release. The wallet does not present a named foreign input or change as guaranteed consideration.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDU3",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 49, 57, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDU3",
  "status": "success",
  "result": {
    "signature": [48, 69, 2, 33, 0, 184, 185, 25, 63, 188, 190, 5, 39, 151, 185, 205, 156, 85, 204, 244, 164, 155, 152, 107, 150, 132, 223, 147, 183, 220, 72, 212, 218, 130, 106, 177, 0, 2, 32, 40, 215, 180, 97, 196, 149, 126, 216, 79, 222, 70, 145, 214, 115, 215, 250, 188, 128, 70, 182, 20, 59, 87, 119, 70, 231, 163, 210, 77, 229, 62, 99]
  }
}
```

The wallet computes the consensus preimage itself, obtains consent covering the actual commitment, atomically reserves the input and returns DER low-S signature bytes without a sighash byte. The application appends the requested flag when constructing the unlocking script. A different consensus-valid signature nonce may produce different DER bytes; the digest and successful verification are the conformance criteria. Revalidation on later wallet completion cannot constrain an external party holding this signature.

### A.58. Verify against the transaction digest

The signature from A.52 is checked using the same derivation tuple and the actual transaction digest.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDU4",
  "call": "verifySignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "forSelf": true,
    "signature": [48, 69, 2, 33, 0, 230, 211, 128, 197, 139, 58, 41, 235, 150, 216, 47, 69, 115, 158, 17, 71, 10, 16, 219, 11, 105, 179, 121, 227, 179, 113, 239, 18, 99, 254, 51, 167, 2, 32, 115, 136, 26, 81, 11, 237, 158, 175, 95, 45, 166, 12, 25, 3, 147, 82, 225, 55, 152, 6, 78, 221, 152, 206, 168, 20, 249, 193, 219, 184, 26, 206],
    "hashToDirectlyVerify": [241, 164, 35, 205, 74, 113, 147, 82, 48, 19, 29, 22, 246, 126, 236, 56, 155, 172, 249, 102, 21, 5, 230, 44, 181, 173, 199, 209, 213, 198, 171, 210]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDU4",
  "status": "success",
  "result": {
    "valid": true
  }
}
```

The envelope’s JSON bytes are not the signed message. Verification does not itself authorize spending or reserve an input. Appending a script sighash byte to the DER-only API signature would also change the API input and is not required here.

### A.59. Invalid consensus signature context

The source is an ordinary P2PKH spend, but the request supplies sighashType 0.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDU5",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 48, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDU5",
  "status": "error",
  "description": "Invalid signature mode for this consensus context",
  "code": 6
}
```

The wallet rejects through consensus-mode validation. Support for ALL, NONE, SINGLE and ANYONECANPAY does not authorize invalid modes or permit a token-specific whitelist that excludes valid ones.

### A.60. Derivation selector must match the source

The transaction spends A, but the request names B’s asset in the key protocol.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDYw",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDYw",
  "status": "error",
  "description": "Colored Tokens source asset does not match protocol selector",
  "code": 6
}
```

The wallet does not select a convenient alternative key, sign a default-basket input, or accept the requested selector as evidence. ISSUE is permitted for A only because its authoritative record preserves that original deploy tuple.

### A.61. Preserve exact composable positions

Alice and Bob require input positions 0 and 1, the three requested outputs in their given order, and generated ordinary change at output 3. All fee funding is already accounted for.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDYx",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens swap reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402204e2757151e54a28d80e672b83cf430d3ecd6b2c6de7ce47023760cb695c922870220594931a3004c2e1f08b3834bb1ddf37b269f1481d1c3576ab54836e21d865bf7412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100f3e0efe667230ecd9f750e5c1c3348ee89dadd25cff11ad70ed90a0e131d7ab402200119a0d91d3d766a29fbc23f1ac07a20d6fb01f05306ec1870f59f79256d403c4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "20a17ef53d1575a70bb727fd09ae1727270e81ba78af0d015890e67a6fde6563b702d0076d76a91444990bee442fb159a9caaa597b98992d2d8d698688ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 999,
        "outputDescription": "Agreed output 2"
      }
    ],
    "labels": [
      "p color plan 0 10 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2262373633363564",
      "p color plan 1 10 6536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 10 744964223a22623736333635646536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30222c2264657269766174696f6e507265666978223a2242773d3d222c",
      "p color plan 3 10 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 10 32383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538",
      "p color plan 5 10 646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a226237363336356465366637616536393035383031306461663738626138313065323732373137616530396664323762373062613737",
      "p color plan 6 10 35313533646635376561315f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b7b226f7574706f696e74223a226535343435623136313336303434383464373535616437633136396633",
      "p color plan 7 10 65333766363361363836633864316231306533626165303737366538646233616130342e30222c22696e646578223a307d2c7b226f7574706f696e74223a2262373633363564653666376165363930353830313064616637386261383130653237323731",
      "p color plan 8 10 3761653039666432376237306261373735313533646635376561312e30222c22696e646578223a317d5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a337d5d2c22736967686173685479",
      "p color plan 9 10 706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDYx",
  "status": "success",
  "result": {
    "txid": "a85bb1cd5778cdd0c8606f6c640e96c2ad5779579ee6f6dad0edbf1c00360196"
  }
}
```

The wallet honors inputPositions and randomizeOutputs:false. No extra funding or change is inserted into these agreed positions. The same rule protects a validated covenant’s positional requirements; if a covenant has additional conditions they are also executed, not inferred from these constraints.

### A.62. Unsatisfiable output positions

The requested recipient output occupies index 0, and generated A change is also constrained to index 0 while output order is fixed.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDYy",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a307d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDYy",
  "status": "error",
  "description": "Conflicting requested and change positions",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.63. Plan chunks interleaved and out of order

The ordinary payment plan arrives with chunks in reverse array order and an unrelated action label between them.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDYz",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 4 5 73223a5b5d7d",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "color example",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDYz",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
  }
}
```

The wallet reconstructs exactly one plan by the encoded partIndex, not array order. The ordinary label remains organizational metadata. Plan labels neither grant permission nor become BRC-177 expiry labels.

### A.64. Duplicate plan chunk

The first plan part appears twice. Its bytes happen to be identical.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDY0",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d",
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDY0",
  "status": "error",
  "description": "Duplicate Colored Tokens plan part",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.65. Missing plan chunk

The declared part count still names a final part that never arrives.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDY1",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDY1",
  "status": "error",
  "description": "Incomplete Colored Tokens action plan",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.66. Duplicate JSON members

The data bytes contain two version members. The duplication is malformed even though the values agree.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDY2",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDY2",
  "status": "error",
  "description": "Duplicate member in Colored Tokens metadata",
  "code": 6
}
```

The parser detects duplication before treating the JSON object as a map. The same rule applies at every nested level, including remittances, operations and constraints. Missing required members also prevent signing.

### A.67. Caller-supplied service URL is not an envelope field

The otherwise complete signature envelope adds an unknown lookupURL member. The wallet derives A’s service and uses its own configured providers.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDY3",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 44, 34, 108, 111, 111, 107, 117, 112, 85, 82, 76, 34, 58, 34, 104, 116, 116, 112, 115, 58, 47, 47, 111, 118, 101, 114, 108, 97, 121, 46, 101, 120, 97, 109, 112, 108, 101, 34, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDY3",
  "status": "error",
  "description": "Unknown Colored Tokens envelope member lookupURL",
  "code": 6
}
```

The wallet rejects the closed-object violation and makes no request to that URL. It independently derives the lookup name and uses its configured SLAP trust policy.

### A.68. Reject invalid byte-array elements

The tx member includes 256, which is not a byte.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDY4",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 50, 53, 54, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDY4",
  "status": "error",
  "description": "Invalid transaction byte array",
  "code": 6
}
```

Strings, base64, numeric-key objects, booleans, fractions and empty tx arrays likewise cannot stand in for the required nonempty byte array. Bounds and encoding are checked before parsing or allocation; no truncation or modulo conversion is permitted.

### A.69. Reject malformed UTF-8

The data bytes are not valid UTF-8 and therefore cannot encode a request envelope.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDY5",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [195, 40],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDY5",
  "status": "error",
  "description": "Colored Tokens envelope is not strict UTF-8",
  "code": 6
}
```

No replacement-character decoding is allowed. Plan hex must likewise be lowercase, even-length and complete, with 200 hex characters in every nonfinal chunk.

### A.70. Reject count overflow before allocation

The declared plan part count exceeds uint32. The wallet must not allocate based on this untrusted count.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDcw",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 4294967296 aa"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDcw",
  "status": "error",
  "description": "Colored Tokens plan count is outside uint32 bounds",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.71. Metadata integers are not booleans

The plan version is JSON true rather than integer 1.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDcx",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a747275652c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e",
      "p color plan 1 5 65644f757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233",
      "p color plan 2 5 616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834",
      "p color plan 3 5 6437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854",
      "p color plan 4 5 79706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDcx",
  "status": "error",
  "description": "Invalid Colored Tokens metadata version",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.72. Complete locally without sending

The wallet validates and signs the transfer but the application asks for noSend.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDcy",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false,
      "noSend": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDcy",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6",
    "noSendChange": [
      "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6.2"
    ]
  }
}
```

The returned transaction ID and ordinary change outpoint identify a locally completed action, not an admitted token receipt. No token topic is submitted yet. The signed capability and managed inputs remain recorded, and the prospective 700-unit token change is not made spendable solely because Bitcoin serialization and signatures are complete.

### A.73. Send a previously prepared action

The transfer from A.72 is retained by the wallet and has not conflicted. This request uses the ordinary batch-only createAction flow.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDcz",
  "call": "createAction",
  "args": {
    "description": "Send prepared Colored Tokens transfer",
    "options": {
      "sendWith": [
        "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
      ],
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDcz",
  "status": "success",
  "result": {
    "sendWithResults": [
      {
        "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6",
        "status": "sending"
      }
    ]
  }
}
```

The wallet resolves the saved plan and authorization, rechecks current token state, and processes the action on the relevant token topic along with Bitcoin submission. The result uses the existing sendWithResults shape; sending does not itself claim mining or topic admission. The wallet records subsequent admission before crediting change. It neither requires invented new inputs/outputs nor charges the same authorized transfer again.

### A.74. Abort after releasing a signature

Start with the pending offer from A.47, including Alice’s already released signature. The wallet cancels its own pending processing.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDc0",
  "call": "abortAction",
  "args": {
    "reference": "bWFuZGFsYS1zd2FwLTAwMDE="
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDc0",
  "status": "success",
  "result": {
    "aborted": true
  }
}
```

Cancellation does not retract Alice’s signature. The wallet retains the exposure record and does not immediately offer A to another conflicting action. It can free that exposure after an authenticated completion or conflict makes the capability unusable, or after explicit consent to a conflicting spend that invalidates the old offer. BRC-177 expiry likewise cannot revoke bytes another party holds.

### A.75. Concurrent action cannot reuse reserved input

The pending offer from A.47 already reserves Alice’s only A input. A second application asks for the normal 300-unit payment, without authorizing a conflict with that offer.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDc1",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDc1",
  "status": "error",
  "description": "No unreserved Colored Tokens balance is available",
  "code": 7
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.76. Retry a completed pending reference

The wallet has already successfully completed the exact reference and spends in A.48. Its response was lost; it recognizes this retry and returns its recorded result.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDc2",
  "call": "signAction",
  "args": {
    "reference": "bWFuZGFsYS1zd2FwLTAwMDE=",
    "spends": {
      "1": {
        "unlockingScript": "483045022100f3e0efe667230ecd9f750e5c1c3348ee89dadd25cff11ad70ed90a0e131d7ab402200119a0d91d3d766a29fbc23f1ac07a20d6fb01f05306ec1870f59f79256d403c4121035426266ad18afddbd6997b724b619249f334d259430e9733b8fa92f8a6153ecb"
      }
    },
    "options": {
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDc2",
  "status": "success",
  "result": {
    "txid": "a85bb1cd5778cdd0c8606f6c640e96c2ad5779579ee6f6dad0edbf1c00360196"
  }
}
```

This is the same authorization record, not a second swap. The wallet does not deduct another allowance, create another credit, or attempt to select another A input. The CWI message ID is only transport correlation; the saved action reference and wallet action state identify this retry.

### A.77. Internalize an admitted swap receipt

The complete swap has already been submitted by its creator and admitted on both topics. Alice has verified sources and the stored remittance context but has not yet credited output 1.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDc3",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The decoded customInstructions string is:

```json
{
  "version": 1,
  "assetId": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0",
  "derivationPrefix": "Bw==",
  "derivationSuffix": "Ag==",
  "senderIdentityKey": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDc3",
  "status": "success",
  "result": {
    "accepted": true
  }
}
```

The wallet validates all complete scripts and both assets’ conservation. The consumed A and B inputs require historical admission, even though they are now spent. The received outpoint a85bb1cd5778cdd0c8606f6c640e96c2ad5779579ee6f6dad0edbf1c00360196.1 must currently be admitted and unspent on B’s topic. Alice’s supplied remittance derives its P2PKH hash; only then are 2000 B units accepted into the B basket. This does not treat Bob’s original source as currently unspent or silently submit a missing receipt.

### A.78. Historical admission differs from current spendability

The completed swap receipt is ready for internalization. Its A input was validly admitted before being consumed.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDc4",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

For the consumed A input the wallet issues this historical query:

```json
{
  "service": "ls_color_e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
  "query": {
    "type": "color-admission",
    "version": 1,
    "assetId": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
    "topic": "tm_color_e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0",
    "outpoints": [
      "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0"
    ]
  }
}
```

Its authenticated response includes the source output:

```json
{
  "type": "output-list",
  "outputs": [
    {
      "outputIndex": 0,
      "beef": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229]
    }
  ]
}
```

An ordinary current-spendability query for that same consumed input now returns:

```json
{
  "type": "output-list",
  "outputs": []
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDc4",
  "status": "success",
  "result": {
    "accepted": true
  }
}
```

That empty current-input answer does not invalidate this receipt. The wallet performs the analogous historical B-input check, then a separate positive current check for the received B output. Historical membership is not reused as evidence that the receipt output remains unspent.

### A.79. Internalization never silently submits

The complete swap is consensus-valid but its B receipt output is absent from the B topic. Its current-spendability query returns an empty output-list.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDc5",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDc5",
  "status": "error",
  "description": "Received token output is not currently admitted and unspent",
  "code": 1
}
```

The wallet rejects receipt acceptance and performs no overlay submission to repair this condition. The creator or higher-level flow must arrange admission before trying again. Existing source proofs and a successful A-topic result cannot substitute for B admission.

### A.80. Wrong receipt basket

The B output and its B remittance are correct, but the caller requests insertion into A’s basket.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDgw",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDgw",
  "status": "error",
  "description": "Receipt basket does not match token asset and role",
  "code": 6
}
```

The wallet rejects rather than silently reclassifying the output. Authority-versus-value basket mismatches, global p color baskets and stored issue baskets fail by the same identity rule.

### A.81. Wrong receipt derivation

The purported ownership metadata has a different suffix from the actual B output key.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDgx",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"AA==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDgx",
  "status": "error",
  "description": "Receipt P2PKH does not match the derived wallet key",
  "code": 6
}
```

The wallet does not count the output as its own merely because it is listed in ownedOutputs or a requested basket. Wrong counterparty, sender key, ordinary/privileged root or derivation prefix has the same ownership consequence.

### A.82. Internalize a completed deploy authority

The authority issuance fixture has a final transaction ID and its output 0 is already admitted and unspent. The wallet has not yet credited it.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDgy",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 78, 56, 86, 146, 182, 3, 52, 49, 240, 48, 183, 245, 23, 112, 159, 251, 131, 149, 250, 31, 91, 111, 179, 35, 200, 138, 85, 46, 78, 38, 18, 149, 2, 0, 190, 239, 0, 2, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 1, 0, 0, 0, 1, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 66, 14, 93, 191, 127, 66, 74, 241, 125, 170, 129, 166, 243, 197, 68, 192, 103, 112, 159, 203, 101, 127, 183, 143, 58, 195, 215, 0, 110, 44, 41, 176, 2, 32, 114, 106, 30, 139, 50, 230, 133, 40, 237, 121, 125, 133, 142, 224, 204, 239, 0, 4, 218, 54, 13, 182, 19, 101, 217, 117, 103, 68, 96, 184, 253, 80, 65, 33, 2, 230, 23, 112, 84, 194, 66, 4, 226, 22, 143, 1, 219, 133, 227, 212, 185, 166, 70, 196, 238, 145, 95, 81, 92, 148, 136, 75, 54, 19, 51, 69, 19, 255, 255, 255, 255, 2, 1, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 109, 118, 169, 20, 181, 99, 117, 205, 237, 91, 33, 92, 140, 128, 14, 84, 10, 179, 40, 244, 157, 231, 27, 214, 136, 172, 5, 39, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 0,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color 9512264e2e558ac823b36f5b1ffa9583fb9f7017f5b730f0313403b69256384ev0 authority",
          "customInstructions": "{\"version\":1,\"assetId\":\"ISSUE\",\"derivationPrefix\":\"Cg==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDgy",
  "status": "success",
  "result": {
    "accepted": true
  }
}
```

The receipt uses ISSUE only to reconstruct the original key. The basket uses the final transaction ID and authority suffix. The wallet independently authenticates the funding input as bare satoshis and derives no token topic for it. This internalization neither recreates the issuance nor assigns a new derivation tuple.

### A.83. Idempotent receipt retry

The wallet has already accepted the same B output under the same validated receipt metadata in A.77. The caller repeats that receipt.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDgz",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDgz",
  "status": "success",
  "result": {
    "accepted": true
  }
}
```

Acceptance is idempotent: the output exists once, the B balance increases only once, and permission accounting is not charged again. Conflicting metadata in a later call must still be validated and rejected; idempotence does not make alternate ownership claims valid.

### A.84. Receipt instructions reject embedded proofs

The ordinary swap receipt is otherwise valid. The added tokenProofs member is empty and the instructions remain below 1000 UTF-8 bytes, isolating the module schema error.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDg0",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"tokenProofs\":[]}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDg0",
  "status": "error",
  "code": 6,
  "description": "Unknown receipt member tokenProofs"
}
```

No receipt is accepted. Proof packets remain permitted in action plans and signature envelopes, but never in receipt custom instructions.

### A.85. Wallet-held lineage with current receipt admission

Historical lookup for B’s consumed source is unavailable. The wallet already holds the following packet in its evidence store; this is fixture state, not an additional wire field. The A.0 chain anchors apply. The received B output has a positive current membership answer, and A’s historical admission is independently available.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDg1",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

Wallet-held evidence, validated for exactly the stated subject:

```json
{
  "assetId": "b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0",
  "subjects": [
    "a85bb1cd5778cdd0c8606f6c640e96c2ad5779579ee6f6dad0edbf1c00360196.1"
  ],
  "beef": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 12, 3, 160, 134, 1, 7, 99, 111, 108, 111, 114, 45, 65, 255, 255, 255, 255, 1, 232, 3, 0, 0, 0, 0, 0, 0, 30, 0, 2, 232, 3, 109, 118, 169, 20, 108, 189, 32, 193, 137, 17, 82, 157, 212, 167, 7, 203, 231, 171, 205, 41, 106, 9, 127, 228, 136, 172, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 12, 3, 161, 134, 1, 7, 99, 111, 108, 111, 114, 45, 66, 255, 255, 255, 255, 1, 232, 3, 0, 0, 0, 0, 0, 0, 30, 0, 2, 208, 7, 109, 118, 169, 20, 176, 109, 50, 129, 118, 226, 254, 137, 16, 28, 119, 1, 232, 41, 12, 62, 199, 228, 26, 242, 136, 172, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0]
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDg1",
  "status": "success",
  "result": {
    "accepted": true
  }
}
```

The wallet validates this BRC-176 packet’s scope, token-parent bodies, conservation and chain evidence independently. It does not process the packet as the receipt’s ordinary tx field. Complete lineage supplies the missing historical fact; current receipt membership remains separately mandatory. An unanchored or scope-mismatched cached packet cannot justify acceptance.

### A.86. Foreign destination is not a wallet credit

Output 0 belongs to Bob, but the application adds an Alice-owned remittance claim to reduce the displayed A debit.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDg2",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens foreign reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 116, 244, 113, 121, 41, 186, 221, 99, 164, 186, 213, 203, 120, 134, 20, 154, 145, 205, 234, 135, 247, 200, 9, 210, 209, 144, 73, 20, 226, 226, 211, 94],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402207e2da7e5cb5ce2c14985c2e069002c5c0434b3b1e7983d85262b8cb7ba70ee7102202b2e72386c3e15fcb05d27d8b3bb1a6a4a9b198c7f586a6d14d853619220be54412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "52"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2074f4717929badd63a4bad5cb7886149a91cdea87f7c809d2d1904914e2e2d35e02d0076d76a91486f9dbe298d4239ea2fc02b77a95db6e74e13eca88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color 5ed3e2e2144990d1d209c8f787eacd919a148678cbd5baa463ddba297971f474v0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 999,
        "outputDescription": "Agreed output 2"
      }
    ],
    "labels": [
      "p color plan 0 10 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2235656433653265",
      "p color plan 1 10 3231343439393064316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 10 744964223a22356564336532653231343439393064316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30222c2264657269766174696f6e507265666978223a2242773d3d222c",
      "p color plan 3 10 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 10 32383135623136663831373938227d2c7b226f7574707574496e646578223a302c2261737365744964223a226535343435623136313336303434383464373535616437633136396633653337663633613638366338643162313065336261653037373665",
      "p color plan 5 10 38646233616130345f30222c2264657269766174696f6e507265666978223a2242773d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a22303237396265363637656639646362",
      "p color plan 6 10 626163353561303632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 7 10 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a22356564336532653231343439393064",
      "p color plan 8 10 316432303963386637383765616364393139613134383637386362643562616134363364646261323937393731663437345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c2263",
      "p color plan 9 10 68616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a337d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDg2",
  "status": "error",
  "description": "Owned output does not match derived wallet P2PKH",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.87. Duplicate explicit input does not duplicate value

The application lists the same authenticated A outpoint twice as explicit inputs. That cannot create another 1000 token units.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDg3",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDg3",
  "status": "error",
  "description": "Duplicate explicit input outpoint",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.88. Declared asset set must equal the transaction

The plan declares B even though neither its inputs nor outputs contain B.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDg4",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 7 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2262373633363564",
      "p color plan 1 7 6536663761653639303538303130646166373862613831306532373237313761653039666432376237306261373735313533646635376561315f30225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a312c2261737365",
      "p color plan 2 7 744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c2264657269766174696f6e507265666978223a2243413d3d222c",
      "p color plan 3 7 2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264636532386439353966",
      "p color plan 4 7 32383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538",
      "p color plan 5 7 646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a32",
      "p color plan 6 7 7d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDg4",
  "status": "error",
  "description": "Colored Tokens plan asset set does not match transaction",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.89. Signature override must name a consumed managed input

The A transfer asks the wallet to apply an override to Bob’s B outpoint, which is not consumed.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDg5",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100e6d380c58b3a29eb96d82f45739e11470a10db0b69b379e3b371ef1263fe33a7022073881a510bed9eaf5f2da60c19039352e13798064edd98cea814f9c1dbb81ace412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 7 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 7 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 7 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 7 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 7 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 7 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b7b226f7574706f696e74223a2262373633363564653666376165363930353830313064616637386261383130653237323731",
      "p color plan 6 7 3761653039666432376237306261373735313533646635376561312e30222c227369676861736854797065223a36357d5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDg5",
  "status": "error",
  "description": "Signature override does not identify a consumed managed input",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.90. Action-label queries retain their matching meaning

No saved action has the selected plan label in this isolated read fixture. The wallet authorizes this origin to query its actions.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDkw",
  "call": "listActions",
  "args": {
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22346631306265393630356630646661636362373339646664346162383936376332636262366236383139346665393936616134313064316533646366373135385f30225d2c22696e70757454"
    ],
    "labelQueryMode": "all",
    "limit": 10,
    "offset": 0
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDkw",
  "status": "success",
  "result": {
    "totalActions": 0,
    "actions": []
  }
}
```

The label is an ordinary exact query term at this boundary, not an instruction to reconstruct and execute a new plan. A wallet applies module-aware read permissions and returns the usual action list shape.

### A.91. Send to an arbitrary foreign locking script

Alice pays 300 A units to the specified OP\_2 OP\_EQUAL destination and receives 700 A units of P2PKH change. The destination is identified by its script, not an asserted exclusive owner.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDkx",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens foreignDest reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402202f032ddf84eb11bd3f4376b20214084bcadf29f665a770a7661d83d9bb527b14022032295e4c5fe24f7e9d602728c4230cf874a1019fd5a095e053e461ba1c847cbd412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d5287",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDkx",
  "status": "success",
  "result": {
    "txid": "806e1966b6712586f3d4e99455d816df518b075e88d97fb1a343cfc8dbc5284e"
  }
}
```

The foreign destination remains valid token value, but it is not wallet custody and is not credited to Alice. The wallet does not replace the script with P2PKH or constrain how a counterparty later spends it. The complete source script, token conservation, satoshis, change and consent are still checked.

### A.92. Executed OP\_CODESEPARATOR determines script code

The K source has a recognized module-key signing role in a foreign script. After its token prefix it executes OP\_CODESEPARATOR unconditionally and then P2PKH. Alice consents to this fully specified transfer.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDky",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 45413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 50, 52, 50, 44, 56, 53, 44, 49, 51, 49, 44, 49, 52, 50, 44, 49, 48, 56, 44, 50, 52, 56, 44, 49, 51, 51, 44, 50, 52, 54, 44, 50, 48, 53, 44, 56, 55, 44, 50, 55, 44, 49, 55, 54, 44, 49, 48, 57, 44, 49, 55, 51, 44, 50, 52, 55, 44, 49, 53, 54, 44, 49, 57, 51, 44, 49, 54, 44, 50, 49, 53, 44, 50, 51, 51, 44, 50, 49, 48, 44, 53, 49, 44, 49, 54, 49, 44, 51, 51, 44, 49, 55, 56, 44, 49, 55, 57, 44, 49, 52, 57, 44, 55, 52, 44, 50, 52, 56, 44, 50, 57, 44, 52, 49, 44, 56, 48, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 50, 48, 57, 44, 50, 50, 49, 44, 55, 50, 44, 55, 55, 44, 51, 44, 50, 53, 50, 44, 49, 57, 51, 44, 50, 52, 50, 44, 55, 44, 50, 51, 56, 44, 53, 44, 50, 51, 56, 44, 52, 53, 44, 53, 51, 44, 52, 50, 44, 55, 55, 44, 49, 50, 56, 44, 49, 52, 52, 44, 49, 56, 57, 44, 49, 53, 48, 44, 51, 56, 44, 49, 56, 54, 44, 53, 51, 44, 49, 51, 52, 44, 49, 56, 44, 49, 57, 57, 44, 49, 49, 50, 44, 52, 56, 44, 49, 50, 50, 44, 49, 53, 53, 44, 49, 51, 50, 44, 49, 52, 49, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 48, 57, 44, 50, 50, 49, 44, 55, 50, 44, 55, 55, 44, 51, 44, 50, 53, 50, 44, 49, 57, 51, 44, 50, 52, 50, 44, 55, 44, 50, 51, 56, 44, 53, 44, 50, 51, 56, 44, 52, 53, 44, 53, 51, 44, 52, 50, 44, 55, 55, 44, 49, 50, 56, 44, 49, 52, 52, 44, 49, 56, 57, 44, 49, 53, 48, 44, 51, 56, 44, 49, 56, 54, 44, 53, 51, 44, 49, 51, 52, 44, 49, 56, 44, 49, 57, 57, 44, 49, 49, 50, 44, 52, 56, 44, 49, 50, 50, 44, 49, 53, 53, 44, 49, 51, 50, 44, 49, 52, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 50, 48, 57, 44, 50, 50, 49, 44, 55, 50, 44, 55, 55, 44, 51, 44, 50, 53, 50, 44, 49, 57, 51, 44, 50, 52, 50, 44, 55, 44, 50, 51, 56, 44, 53, 44, 50, 51, 56, 44, 52, 53, 44, 53, 51, 44, 52, 50, 44, 55, 55, 44, 49, 50, 56, 44, 49, 52, 52, 44, 49, 56, 57, 44, 49, 53, 48, 44, 51, 56, 44, 49, 56, 54, 44, 53, 51, 44, 49, 51, 52, 44, 49, 56, 44, 49, 57, 57, 44, 49, 49, 50, 44, 52, 56, 44, 49, 50, 50, 44, 49, 53, 53, 44, 49, 51, 50, 44, 49, 52, 49, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 50, 54, 44, 49, 51, 57, 44, 55, 48, 44, 51, 57, 44, 50, 52, 54, 44, 50, 48, 52, 44, 50, 51, 44, 49, 53, 55, 44, 49, 49, 51, 44, 56, 50, 44, 50, 51, 48, 44, 50, 51, 54, 44, 49, 56, 51, 44, 50, 53, 44, 50, 50, 55, 44, 50, 51, 48, 44, 49, 53, 53, 44, 50, 53, 51, 44, 49, 51, 54, 44, 49, 51, 55, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 50, 48, 57, 44, 50, 50, 49, 44, 55, 50, 44, 55, 55, 44, 51, 44, 50, 53, 50, 44, 49, 57, 51, 44, 50, 52, 50, 44, 55, 44, 50, 51, 56, 44, 53, 44, 50, 51, 56, 44, 52, 53, 44, 53, 51, 44, 52, 50, 44, 55, 55, 44, 49, 50, 56, 44, 49, 52, 52, 44, 49, 56, 57, 44, 49, 53, 48, 44, 51, 56, 44, 49, 56, 54, 44, 53, 51, 44, 49, 51, 52, 44, 49, 56, 44, 49, 57, 57, 44, 49, 49, 50, 44, 52, 56, 44, 49, 50, 50, 44, 49, 53, 53, 44, 49, 51, 50, 44, 49, 52, 49, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 56, 50, 44, 52, 55, 44, 50, 53, 50, 44, 50, 49, 57, 44, 50, 54, 44, 56, 51, 44, 49, 57, 56, 44, 49, 55, 51, 44, 49, 49, 56, 44, 50, 53, 52, 44, 49, 55, 44, 49, 49, 55, 44, 51, 55, 44, 49, 48, 56, 44, 56, 52, 44, 50, 53, 49, 44, 49, 49, 56, 44, 49, 54, 44, 49, 48, 51, 44, 50, 48, 49, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 56, 100, 56, 52, 57, 98, 55, 97, 51, 48, 55, 48, 99, 55, 49, 50, 56, 54, 51, 53, 98, 97, 50, 54, 57, 54, 98, 100, 57, 48, 56, 48, 52, 100, 50, 97, 51, 53, 50, 100, 101, 101, 48, 53, 101, 101, 48, 55, 102, 50, 99, 49, 102, 99, 48, 51, 52, 100, 52, 56, 100, 100, 100, 49, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 69, 103, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDky",
  "status": "success",
  "result": {
    "signature": [48, 68, 2, 32, 21, 254, 106, 34, 170, 22, 93, 73, 42, 136, 159, 231, 139, 33, 192, 9, 24, 65, 76, 39, 157, 230, 87, 159, 211, 183, 191, 253, 164, 85, 15, 245, 2, 32, 101, 143, 44, 148, 192, 83, 172, 63, 108, 31, 91, 169, 172, 175, 56, 65, 46, 203, 33, 91, 181, 111, 48, 82, 241, 125, 131, 131, 175, 161, 103, 85]
  }
}
```

The wallet determines the actual executed path and uses only the script after the executed separator in this input’s consensus preimage. It verifies that the derived ISSUE key controls that signing role. The fixture signature executes successfully in the complete source script. K is not placed in an ordinary managed P2PKH basket merely because the module can sign this recognized foreign role.

### A.93. Missing branch material prevents a preimage decision

The Q script conditionally executes one of two OP\_CODESEPARATOR positions before the module-key P2PKH check. Its input has no unlocking script or branch-selection material.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDkz",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 45513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 49, 57, 57, 44, 49, 48, 52, 44, 49, 54, 54, 44, 49, 54, 44, 50, 53, 50, 44, 50, 48, 55, 44, 57, 56, 44, 50, 48, 54, 44, 49, 52, 51, 44, 50, 50, 56, 44, 52, 50, 44, 50, 55, 44, 49, 48, 55, 44, 50, 48, 52, 44, 49, 55, 48, 44, 52, 56, 44, 49, 48, 51, 44, 49, 53, 44, 51, 55, 44, 49, 51, 53, 44, 50, 54, 44, 50, 48, 56, 44, 49, 55, 54, 44, 49, 56, 49, 44, 49, 53, 54, 44, 49, 55, 53, 44, 50, 53, 51, 44, 50, 52, 48, 44, 50, 49, 49, 44, 49, 54, 57, 44, 49, 49, 53, 44, 49, 50, 51, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 53, 55, 44, 49, 50, 51, 44, 49, 49, 54, 44, 56, 52, 44, 52, 51, 44, 49, 51, 54, 44, 50, 50, 50, 44, 49, 55, 52, 44, 49, 54, 54, 44, 49, 50, 50, 44, 57, 56, 44, 49, 57, 49, 44, 57, 52, 44, 50, 49, 49, 44, 57, 54, 44, 54, 51, 44, 49, 56, 44, 50, 48, 50, 44, 49, 56, 50, 44, 49, 54, 54, 44, 49, 55, 55, 44, 54, 55, 44, 57, 53, 44, 56, 57, 44, 49, 55, 49, 44, 53, 50, 44, 56, 44, 49, 55, 55, 44, 49, 55, 50, 44, 49, 53, 44, 55, 55, 44, 50, 49, 56, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 53, 55, 44, 49, 50, 51, 44, 49, 49, 54, 44, 56, 52, 44, 52, 51, 44, 49, 51, 54, 44, 50, 50, 50, 44, 49, 55, 52, 44, 49, 54, 54, 44, 49, 50, 50, 44, 57, 56, 44, 49, 57, 49, 44, 57, 52, 44, 50, 49, 49, 44, 57, 54, 44, 54, 51, 44, 49, 56, 44, 50, 48, 50, 44, 49, 56, 50, 44, 49, 54, 54, 44, 49, 55, 55, 44, 54, 55, 44, 57, 53, 44, 56, 57, 44, 49, 55, 49, 44, 53, 50, 44, 56, 44, 49, 55, 55, 44, 49, 55, 50, 44, 49, 53, 44, 55, 55, 44, 50, 49, 56, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 53, 55, 44, 49, 50, 51, 44, 49, 49, 54, 44, 56, 52, 44, 52, 51, 44, 49, 51, 54, 44, 50, 50, 50, 44, 49, 55, 52, 44, 49, 54, 54, 44, 49, 50, 50, 44, 57, 56, 44, 49, 57, 49, 44, 57, 52, 44, 50, 49, 49, 44, 57, 54, 44, 54, 51, 44, 49, 56, 44, 50, 48, 50, 44, 49, 56, 50, 44, 49, 54, 54, 44, 49, 55, 55, 44, 54, 55, 44, 57, 53, 44, 56, 57, 44, 49, 55, 49, 44, 53, 50, 44, 56, 44, 49, 55, 55, 44, 49, 55, 50, 44, 49, 53, 44, 55, 55, 44, 50, 49, 56, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 55, 54, 44, 51, 44, 49, 57, 53, 44, 49, 49, 44, 54, 48, 44, 49, 48, 49, 44, 52, 51, 44, 53, 51, 44, 50, 53, 48, 44, 55, 50, 44, 49, 48, 51, 44, 49, 52, 44, 52, 57, 44, 49, 48, 48, 44, 49, 50, 50, 44, 53, 54, 44, 49, 48, 56, 44, 49, 57, 56, 44, 49, 52, 44, 49, 57, 51, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 53, 55, 44, 49, 50, 51, 44, 49, 49, 54, 44, 56, 52, 44, 52, 51, 44, 49, 51, 54, 44, 50, 50, 50, 44, 49, 55, 52, 44, 49, 54, 54, 44, 49, 50, 50, 44, 57, 56, 44, 49, 57, 49, 44, 57, 52, 44, 50, 49, 49, 44, 57, 54, 44, 54, 51, 44, 49, 56, 44, 50, 48, 50, 44, 49, 56, 50, 44, 49, 54, 54, 44, 49, 55, 55, 44, 54, 55, 44, 57, 53, 44, 56, 57, 44, 49, 55, 49, 44, 53, 50, 44, 56, 44, 49, 55, 55, 44, 49, 55, 50, 44, 49, 53, 44, 55, 55, 44, 50, 49, 56, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 50, 48, 51, 44, 49, 55, 56, 44, 57, 51, 44, 49, 56, 49, 44, 50, 50, 54, 44, 50, 57, 44, 51, 51, 44, 49, 55, 53, 44, 50, 50, 44, 49, 48, 54, 44, 50, 49, 52, 44, 49, 56, 48, 44, 50, 53, 53, 44, 49, 49, 48, 44, 57, 55, 44, 50, 49, 57, 44, 51, 51, 44, 49, 48, 44, 49, 51, 55, 44, 52, 56, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 100, 97, 52, 100, 48, 102, 97, 99, 98, 49, 48, 56, 51, 52, 97, 98, 53, 57, 53, 102, 52, 51, 98, 49, 97, 54, 98, 54, 99, 97, 49, 50, 51, 102, 54, 48, 100, 51, 53, 101, 98, 102, 54, 50, 55, 97, 97, 54, 97, 101, 100, 101, 56, 56, 50, 98, 53, 52, 55, 52, 55, 98, 51, 57, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 69, 119, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDkz",
  "status": "error",
  "description": "Missing execution context for module-key signature",
  "code": 6
}
```

The wallet cannot determine the correct script code and returns no signature. It does not accept an asserted separator offset or assume a branch. The caller must supply enough execution context before retrying. This restriction concerns a signature the module itself must construct; other foreign inputs may remain explicitly pending when their final scripts are not yet available.

### A.94. Direct signature for a committed partial swap

Alice authorizes a pending offer exchanging her 1000 A units for Bob’s 2000 B units. The two named current inputs and all promised outputs are committed by ALL|FORKID; Bob has not supplied his unlocking script. The wallet has completed its configured A/B acceptance preflight and verified the fixture's system-specific settlement safeguard.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDk0",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 49, 56, 51, 44, 50, 50, 54, 44, 50, 49, 55, 44, 57, 55, 44, 54, 56, 44, 49, 55, 51, 44, 50, 53, 52, 44, 49, 57, 50, 44, 49, 51, 50, 44, 49, 51, 50, 44, 49, 55, 48, 44, 49, 51, 55, 44, 55, 48, 44, 50, 48, 57, 44, 49, 50, 53, 44, 49, 51, 50, 44, 50, 52, 52, 44, 49, 56, 52, 44, 49, 49, 51, 44, 56, 49, 44, 55, 49, 44, 50, 50, 51, 44, 49, 51, 57, 44, 51, 56, 44, 49, 48, 48, 44, 50, 53, 48, 44, 57, 48, 44, 49, 48, 49, 44, 50, 49, 50, 44, 51, 54, 44, 55, 44, 49, 49, 56, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 51, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 50, 51, 50, 44, 51, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 50, 44, 50, 48, 56, 44, 55, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 54, 56, 44, 49, 53, 51, 44, 49, 49, 44, 50, 51, 56, 44, 54, 56, 44, 52, 55, 44, 49, 55, 55, 44, 56, 57, 44, 49, 54, 57, 44, 50, 48, 50, 44, 49, 55, 48, 44, 56, 57, 44, 49, 50, 51, 44, 49, 53, 50, 44, 49, 53, 51, 44, 52, 53, 44, 52, 53, 44, 49, 52, 49, 44, 49, 48, 53, 44, 49, 51, 52, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 51, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 52, 56, 44, 50, 50, 54, 44, 49, 51, 52, 44, 50, 49, 44, 55, 48, 44, 50, 50, 48, 44, 50, 52, 54, 44, 49, 48, 49, 44, 56, 55, 44, 57, 53, 44, 54, 48, 44, 52, 48, 44, 56, 44, 56, 55, 44, 50, 51, 48, 44, 50, 49, 48, 44, 49, 57, 54, 44, 50, 49, 55, 44, 54, 56, 44, 50, 49, 56, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 98, 55, 54, 51, 54, 53, 100, 101, 54, 102, 55, 97, 101, 54, 57, 48, 53, 56, 48, 49, 48, 100, 97, 102, 55, 56, 98, 97, 56, 49, 48, 101, 50, 55, 50, 55, 49, 55, 97, 101, 48, 57, 102, 100, 50, 55, 98, 55, 48, 98, 97, 55, 55, 53, 49, 53, 51, 100, 102, 53, 55, 101, 97, 49, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 66, 119, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDk0",
  "status": "success",
  "result": {
    "signature": [48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247]
  }
}
```

The wallet records the precise authorized exposure and reserves A before releasing the signature. It does not credit B while the transaction remains partial. Every consensus-valid completion using this signature retains the named input outpoints and outputs; a conflicting spend of the named B UTXO prevents this offer from completing. This is transaction-level commitment, not a guarantee that either overlay will later admit the output.

### A.95. Decline an unguaranteed swap

Alice permits only an offer whose named incoming B source and B receipt remain binding. The request instead uses ALL|FORKID|ANYONECANPAY, and no independent covenant or other commitment binds that incoming source.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDk1",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 49, 56, 51, 44, 50, 50, 54, 44, 50, 49, 55, 44, 57, 55, 44, 54, 56, 44, 49, 55, 51, 44, 50, 53, 52, 44, 49, 57, 50, 44, 49, 51, 50, 44, 49, 51, 50, 44, 49, 55, 48, 44, 49, 51, 55, 44, 55, 48, 44, 50, 48, 57, 44, 49, 50, 53, 44, 49, 51, 50, 44, 50, 52, 52, 44, 49, 56, 52, 44, 49, 49, 51, 44, 56, 49, 44, 55, 49, 44, 50, 50, 51, 44, 49, 51, 57, 44, 51, 56, 44, 49, 48, 48, 44, 50, 53, 48, 44, 57, 48, 44, 49, 48, 49, 44, 50, 49, 50, 44, 51, 54, 44, 55, 44, 49, 49, 56, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 51, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 50, 51, 50, 44, 51, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 50, 44, 50, 48, 56, 44, 55, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 54, 56, 44, 49, 53, 51, 44, 49, 49, 44, 50, 51, 56, 44, 54, 56, 44, 52, 55, 44, 49, 55, 55, 44, 56, 57, 44, 49, 54, 57, 44, 50, 48, 50, 44, 49, 55, 48, 44, 56, 57, 44, 49, 50, 51, 44, 49, 53, 50, 44, 49, 53, 51, 44, 52, 53, 44, 52, 53, 44, 49, 52, 49, 44, 49, 48, 53, 44, 49, 51, 52, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 51, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 52, 56, 44, 50, 50, 54, 44, 49, 51, 52, 44, 50, 49, 44, 55, 48, 44, 50, 50, 48, 44, 50, 52, 54, 44, 49, 48, 49, 44, 56, 55, 44, 57, 53, 44, 54, 48, 44, 52, 48, 44, 56, 44, 56, 55, 44, 50, 51, 48, 44, 50, 49, 48, 44, 49, 57, 54, 44, 50, 49, 55, 44, 54, 56, 44, 50, 49, 56, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 49, 57, 51, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 98, 55, 54, 51, 54, 53, 100, 101, 54, 102, 55, 97, 101, 54, 57, 48, 53, 56, 48, 49, 48, 100, 97, 102, 55, 56, 98, 97, 56, 49, 48, 101, 50, 55, 50, 55, 49, 55, 97, 101, 48, 57, 102, 100, 50, 55, 98, 55, 48, 98, 97, 55, 55, 53, 49, 53, 51, 100, 102, 53, 55, 101, 97, 49, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 66, 119, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDk1",
  "status": "error",
  "description": "Requested signature does not satisfy the authorized swap commitments",
  "code": 1
}
```

The wallet releases no capability and rolls back provisional reservations. ALL output coverage alone is not named-input coverage.

### A.96. Conditional consideration with a verified remedy

The proposed layout is the same swap, but Alice's wallet has independently verified an applicable asset-ecosystem remedy under its owner-configured policy. That remedy covers the loss of her A contribution if the unbound B source does not supply admitted consideration. The fixture deliberately does not instantiate or standardize the remedy. Alice consents to the precisely described conditional capability, including its limits; disclosure alone would not be enough to authorize it.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDk2",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 49, 56, 51, 44, 50, 50, 54, 44, 50, 49, 55, 44, 57, 55, 44, 54, 56, 44, 49, 55, 51, 44, 50, 53, 52, 44, 49, 57, 50, 44, 49, 51, 50, 44, 49, 51, 50, 44, 49, 55, 48, 44, 49, 51, 55, 44, 55, 48, 44, 50, 48, 57, 44, 49, 50, 53, 44, 49, 51, 50, 44, 50, 52, 52, 44, 49, 56, 52, 44, 49, 49, 51, 44, 56, 49, 44, 55, 49, 44, 50, 50, 51, 44, 49, 51, 57, 44, 51, 56, 44, 49, 48, 48, 44, 50, 53, 48, 44, 57, 48, 44, 49, 48, 49, 44, 50, 49, 50, 44, 51, 54, 44, 55, 44, 49, 49, 56, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 51, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 50, 51, 50, 44, 51, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 49, 54, 49, 44, 49, 50, 54, 44, 50, 52, 53, 44, 54, 49, 44, 50, 49, 44, 49, 49, 55, 44, 49, 54, 55, 44, 49, 49, 44, 49, 56, 51, 44, 51, 57, 44, 50, 53, 51, 44, 57, 44, 49, 55, 52, 44, 50, 51, 44, 51, 57, 44, 51, 57, 44, 49, 52, 44, 49, 50, 57, 44, 49, 56, 54, 44, 49, 50, 48, 44, 49, 55, 53, 44, 49, 51, 44, 49, 44, 56, 56, 44, 49, 52, 52, 44, 50, 51, 48, 44, 49, 50, 50, 44, 49, 49, 49, 44, 50, 50, 50, 44, 49, 48, 49, 44, 57, 57, 44, 49, 56, 51, 44, 50, 44, 50, 48, 56, 44, 55, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 54, 56, 44, 49, 53, 51, 44, 49, 49, 44, 50, 51, 56, 44, 54, 56, 44, 52, 55, 44, 49, 55, 55, 44, 56, 57, 44, 49, 54, 57, 44, 50, 48, 50, 44, 49, 55, 48, 44, 56, 57, 44, 49, 50, 51, 44, 49, 53, 50, 44, 49, 53, 51, 44, 52, 53, 44, 52, 53, 44, 49, 52, 49, 44, 49, 48, 53, 44, 49, 51, 52, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 51, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 52, 56, 44, 50, 50, 54, 44, 49, 51, 52, 44, 50, 49, 44, 55, 48, 44, 50, 50, 48, 44, 50, 52, 54, 44, 49, 48, 49, 44, 56, 55, 44, 57, 53, 44, 54, 48, 44, 52, 48, 44, 56, 44, 56, 55, 44, 50, 51, 48, 44, 50, 49, 48, 44, 49, 57, 54, 44, 50, 49, 55, 44, 54, 56, 44, 50, 49, 56, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 49, 57, 51, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 98, 55, 54, 51, 54, 53, 100, 101, 54, 102, 55, 97, 101, 54, 57, 48, 53, 56, 48, 49, 48, 100, 97, 102, 55, 56, 98, 97, 56, 49, 48, 101, 50, 55, 50, 55, 49, 55, 97, 101, 48, 57, 102, 100, 50, 55, 98, 55, 48, 98, 97, 55, 55, 53, 49, 53, 51, 100, 102, 53, 55, 101, 97, 49, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 66, 119, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDk2",
  "status": "success",
  "result": {
    "signature": [48, 69, 2, 33, 0, 131, 121, 138, 62, 155, 196, 191, 144, 243, 206, 87, 38, 19, 242, 125, 205, 75, 243, 72, 33, 98, 215, 169, 232, 195, 210, 209, 111, 27, 192, 238, 108, 2, 32, 98, 48, 190, 139, 78, 169, 56, 180, 137, 107, 107, 29, 165, 114, 191, 72, 234, 98, 239, 71, 105, 170, 31, 197, 21, 230, 173, 3, 227, 102, 73, 153]
  }
}
```

The wallet records the precise authorized exposure and reserves A before releasing the signature. It does not credit B while the transaction remains partial. The wallet explains that the signature does not bind the incoming B source, that overlay admission remains conditional, and which independently verified remedy protects Alice if consideration fails. It neither claims hashPrevouts coverage nor relies on future signAction revalidation to constrain an externally completed signature. Without that remedy the required result is A.95's refusal.

### A.97. Legacy mint is authorized by an authority

The caller supplies a BRC-161 mint destination for 2500 H units to Bob and a binary replacement authority to Alice. The H authority input is admitted and controlled by Alice.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDk3",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens legacyMint reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 108, 125, 140, 21, 9, 60, 205, 168, 179, 15, 140, 109, 9, 65, 149, 59, 45, 142, 219, 37, 2, 55, 144, 50, 175, 69, 114, 37, 25, 72, 224, 236],
    "inputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100f6f76ba4b84abc08ee08e1c8c650cd754aaf50d9b0351415518179432ea3404a02201b285ef5e38a0b497b6134933cfae3c73a7b859cb72aae44836df5c41708c8884121035c5c837a779d6acfe11abe4470873cdb504c03d846c1ad2f258b0af22fce2ef8"
      }
    ],
    "outputs": [
      {
        "lockingScript": "0063036f726451126170706c69636174696f6e2f6273762d3230004c717b2270223a226273762d3230222c226f70223a226d696e74222c226964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c22616d74223a2232353030227d6876a914f39d18223ace5d48278e74ec10eca2f01c165e8d88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a914046f95ea33fe01c0957b8631fbb005493883e86b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
      }
    ],
    "labels": [
      "p color plan 0 7 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 7 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 7 635f30222c2264657269766174696f6e507265666978223a2246513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 7 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226563653034383139323537323435616633323930333730323235",
      "p color plan 4 7 64623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a226d696e74227d2c7b2261737365744964223a226563653034383139323537323435616633323930333730323235",
      "p color plan 5 7 64623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a22617574686f726974792d7472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368",
      "p color plan 6 7 616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDk3",
  "status": "success",
  "result": {
    "txid": "f4575586e4dc060caffa389c20400c419a10610412ebcaab1d731c8b73f345c9"
  }
}
```

The wallet recognizes the legacy mint operation as new supply authorized by H’s authority, validates the ordinary scripts and current overlay, and separately consents to supply creation and authority replacement. New wallet-generated custody outputs use BRC-162; recognizing a caller-supplied foreign legacy destination does not convert it to a different asset.

### A.98. Authority does not fund legacy transfers

The H authority input contributes zero fungible units. The caller’s legacy transfer output requests 2500 units with no valid H value inputs. All supplied signatures are otherwise valid.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDk4",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens legacyBad reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 108, 125, 140, 21, 9, 60, 205, 168, 179, 15, 140, 109, 9, 65, 149, 59, 45, 142, 219, 37, 2, 55, 144, 50, 175, 69, 114, 37, 25, 72, 224, 236],
    "inputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100b2dc3759131aed8a5c23a6a0aac3b92720f36972e608548691628823e374801d02204699104e3d7885c8fe41a2ee33b7670ef93c313c947ad7ac5716ab2bc57765a04121035c5c837a779d6acfe11abe4470873cdb504c03d846c1ad2f258b0af22fce2ef8"
      }
    ],
    "outputs": [
      {
        "lockingScript": "0063036f726451126170706c69636174696f6e2f6273762d3230004c757b2270223a226273762d3230222c226f70223a227472616e73666572222c226964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c22616d74223a2232353030227d6876a914f39d18223ace5d48278e74ec10eca2f01c165e8d88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "206c7d8c15093ccda8b30f8c6d0941953b2d8edb2502379032af4572251948e0ec006d76a914046f95ea33fe01c0957b8631fbb005493883e86b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
      }
    ],
    "labels": [
      "p color plan 0 7 7b2276657273696f6e223a312c22617373657473223a5b22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30225d2c226f776e65644f",
      "p color plan 1 7 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22656365303438313932353732343561663332393033373032323564623865326433623935343130393664386330666233613863643363303931353863376436",
      "p color plan 2 7 635f30222c2264657269766174696f6e507265666978223a2246513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 7 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226563653034383139323537323435616633323930333730323235",
      "p color plan 4 7 64623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a227472616e73666572227d2c7b2261737365744964223a2265636530343831393235373234356166333239303337",
      "p color plan 5 7 3032323564623865326433623935343130393664386330666233613863643363303931353863376436635f30222c226f7065726174696f6e223a22617574686f726974792d7472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d",
      "p color plan 6 7 2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDk4",
  "status": "error",
  "description": "Legacy transfer and burn outputs lack value-input coverage",
  "code": 6
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.99. Legacy burn output cannot enter value custody

The completed legacy burn fixture consumes L’s 1000 units and creates an explicit burn inscription for that amount, with a P2PKH remainder derived for Alice. Its scripts are valid and historical source admission is available.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMDk5",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 182, 85, 74, 219, 184, 11, 10, 142, 220, 227, 177, 252, 162, 124, 68, 141, 142, 235, 210, 234, 174, 136, 157, 219, 126, 60, 131, 219, 188, 127, 224, 15, 2, 0, 190, 239, 0, 3, 2, 81, 163, 105, 87, 99, 203, 143, 187, 119, 20, 243, 224, 157, 22, 131, 97, 82, 145, 212, 105, 40, 31, 180, 156, 189, 32, 243, 94, 64, 184, 201, 50, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 1, 0, 0, 0, 2, 81, 163, 105, 87, 99, 203, 143, 187, 119, 20, 243, 224, 157, 22, 131, 97, 82, 145, 212, 105, 40, 31, 180, 156, 189, 32, 243, 94, 64, 184, 201, 50, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 88, 154, 232, 180, 21, 97, 225, 72, 84, 36, 54, 117, 182, 125, 85, 73, 225, 239, 167, 106, 145, 194, 212, 178, 177, 50, 89, 208, 214, 62, 182, 89, 2, 32, 68, 3, 130, 71, 193, 123, 229, 255, 142, 152, 69, 185, 110, 39, 195, 175, 54, 1, 94, 242, 84, 47, 250, 29, 201, 66, 45, 171, 203, 57, 127, 208, 65, 33, 2, 22, 167, 128, 7, 182, 240, 53, 225, 137, 216, 57, 95, 139, 65, 183, 82, 68, 181, 235, 7, 135, 66, 69, 209, 24, 28, 2, 103, 192, 111, 161, 217, 255, 255, 255, 255, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 129, 50, 89, 45, 142, 6, 134, 253, 195, 3, 166, 130, 250, 169, 191, 156, 143, 242, 251, 18, 190, 168, 26, 84, 98, 199, 7, 12, 193, 5, 200, 241, 2, 32, 0, 209, 54, 76, 174, 214, 163, 109, 243, 46, 162, 97, 4, 129, 81, 114, 27, 189, 11, 244, 9, 121, 161, 66, 130, 226, 107, 213, 73, 17, 60, 132, 65, 33, 2, 230, 23, 112, 84, 194, 66, 4, 226, 22, 143, 1, 219, 133, 227, 212, 185, 166, 70, 196, 238, 145, 95, 81, 92, 148, 136, 75, 54, 19, 51, 69, 19, 255, 255, 255, 255, 2, 1, 0, 0, 0, 0, 0, 0, 0, 168, 0, 99, 3, 111, 114, 100, 81, 18, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 98, 115, 118, 45, 50, 48, 0, 76, 113, 123, 34, 112, 34, 58, 34, 98, 115, 118, 45, 50, 48, 34, 44, 34, 111, 112, 34, 58, 34, 98, 117, 114, 110, 34, 44, 34, 105, 100, 34, 58, 34, 51, 50, 99, 57, 98, 56, 52, 48, 53, 101, 102, 51, 50, 48, 98, 100, 57, 99, 98, 52, 49, 102, 50, 56, 54, 57, 100, 52, 57, 49, 53, 50, 54, 49, 56, 51, 49, 54, 57, 100, 101, 48, 102, 51, 49, 52, 55, 55, 98, 98, 56, 102, 99, 98, 54, 51, 53, 55, 54, 57, 97, 51, 53, 49, 95, 48, 34, 44, 34, 97, 109, 116, 34, 58, 34, 49, 48, 48, 48, 34, 125, 104, 118, 169, 20, 141, 22, 36, 1, 44, 109, 5, 57, 134, 137, 143, 0, 143, 48, 191, 43, 248, 255, 85, 39, 136, 172, 6, 39, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 0,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color 32c9b8405ef320bd9cb41f2869d491526183169de0f31477bb8fcb635769a351v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"32c9b8405ef320bd9cb41f2869d491526183169de0f31477bb8fcb635769a351_0\",\"derivationPrefix\":\"Fg==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMDk5",
  "status": "error",
  "description": "Legacy burn output has no spendable token value",
  "code": 6
}
```

Even a matching wallet key and a known overlay history cannot turn the burn record into value. It is excluded from incoming-value netting, value selection and managed value baskets. Both the explicit burn and any implicit remainder burn require the creator’s consent; neither is an incoming payment.

### A.100. Lookup results must match requested outpoints

The wallet requests A’s current state, but the authenticated provider returns B’s output instead:

```json
{
  "type": "output-list",
  "outputs": [
    {
      "outputIndex": 0,
      "beef": [2, 0, 190, 239, 0, 1, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183]
    }
  ]
}
```

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTAw",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTAw",
  "status": "error",
  "description": "Overlay output does not match requested outpoint",
  "code": 1
}
```

No signature is released and provisional reservations are rolled back. No token credit or settled debit is recorded.

### A.101. Documented lower host resource limit

This host documents a 512-byte decoded signature-envelope limit. The complete request below exceeds that limit. The source and permissions would otherwise be acceptable.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTAx",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 41513d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 54, 44, 49, 57, 44, 50, 49, 57, 44, 49, 57, 56, 44, 50, 51, 49, 44, 49, 48, 51, 44, 49, 54, 49, 44, 50, 51, 49, 44, 50, 52, 57, 44, 50, 50, 44, 52, 49, 44, 55, 48, 44, 49, 49, 48, 44, 49, 48, 44, 49, 52, 53, 44, 49, 53, 55, 44, 49, 55, 49, 44, 49, 56, 55, 44, 49, 48, 51, 44, 49, 52, 54, 44, 49, 55, 50, 44, 55, 51, 44, 50, 57, 44, 57, 44, 50, 48, 51, 44, 57, 50, 44, 49, 52, 48, 44, 50, 51, 49, 44, 49, 53, 57, 44, 56, 44, 50, 48, 44, 57, 50, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 51, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 52, 52, 44, 49, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 50, 44, 50, 57, 44, 49, 50, 50, 44, 53, 57, 44, 50, 48, 52, 44, 56, 49, 44, 51, 50, 44, 49, 52, 48, 44, 50, 48, 44, 57, 50, 44, 51, 57, 44, 50, 48, 44, 57, 53, 44, 50, 48, 53, 44, 49, 49, 52, 44, 52, 51, 44, 50, 48, 55, 44, 49, 50, 48, 44, 50, 48, 49, 44, 49, 51, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 54, 50, 44, 51, 50, 44, 52, 44, 49, 55, 48, 44, 49, 55, 57, 44, 49, 52, 49, 44, 49, 49, 48, 44, 49, 49, 57, 44, 50, 50, 52, 44, 49, 56, 54, 44, 50, 50, 55, 44, 49, 54, 44, 50, 55, 44, 49, 52, 49, 44, 49, 48, 56, 44, 49, 48, 52, 44, 53, 56, 44, 50, 52, 54, 44, 53, 53, 44, 54, 50, 44, 49, 53, 57, 44, 50, 50, 44, 49, 50, 52, 44, 49, 55, 51, 44, 56, 53, 44, 50, 49, 53, 44, 49, 51, 50, 44, 54, 56, 44, 57, 54, 44, 49, 57, 44, 50, 50, 44, 57, 49, 44, 54, 56, 44, 50, 50, 57, 44, 50, 44, 49, 56, 56, 44, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 57, 55, 44, 50, 52, 56, 44, 49, 55, 50, 44, 49, 49, 44, 52, 57, 44, 49, 53, 48, 44, 50, 51, 51, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 55, 44, 49, 48, 54, 44, 49, 53, 44, 50, 48, 49, 44, 49, 56, 48, 44, 50, 54, 44, 49, 50, 57, 44, 49, 53, 49, 44, 55, 50, 44, 50, 54, 44, 57, 44, 49, 51, 54, 44, 49, 55, 50, 44, 50, 50, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 49, 53, 48, 44, 50, 52, 55, 44, 49, 57, 56, 44, 49, 55, 53, 44, 50, 52, 53, 44, 49, 51, 53, 44, 55, 55, 44, 52, 52, 44, 56, 55, 44, 50, 52, 56, 44, 50, 48, 50, 44, 49, 49, 55, 44, 55, 48, 44, 49, 48, 57, 44, 53, 52, 44, 51, 50, 44, 50, 53, 53, 44, 50, 53, 49, 44, 49, 53, 53, 44, 49, 57, 54, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 49, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 101, 53, 52, 52, 53, 98, 49, 54, 49, 51, 54, 48, 52, 52, 56, 52, 100, 55, 53, 53, 97, 100, 55, 99, 49, 54, 57, 102, 51, 101, 51, 55, 102, 54, 51, 97, 54, 56, 54, 99, 56, 100, 49, 98, 49, 48, 101, 51, 98, 97, 101, 48, 55, 55, 54, 101, 56, 100, 98, 51, 97, 97, 48, 52, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 67, 65, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 125],
    "seekPermission": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTAx",
  "status": "error",
  "description": "Colored Tokens envelope exceeds host limit of 512 bytes",
  "code": 6
}
```

The wallet fails explicitly before large allocation or signing; it does not truncate the transaction, omit evidence, or partially decode a plan. The module’s 16 MiB ceiling still applies when the host supports larger requests. Lower plan and proof resource limits must likewise be explicit failures, never silent omission.

### A.102. Bitcoin processing succeeds but an overlay fails

Alice authorizes the ordinary transfer. Bitcoin processing succeeds with the shown transfer transaction ID, but the A-topic submission fails.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTAy",
  "call": "createAction",
  "args": {
    "description": "Pay 300 token units to Bob",
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Bob receives 300 units"
      }
    ],
    "labels": [
      "p color plan 0 5 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 5 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 5 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a2265353434356231363133363034343834643735",
      "p color plan 3 5 3561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30222c22696e646578223a317d2c7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369676861736854797065",
      "p color plan 4 5 73223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTAy",
  "status": "error",
  "description": "Transaction completed but Colored Tokens overlay admission is pending",
  "code": 1
}
```

The wallet retains the real completed transaction b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6 and reports its unresolved token processing state. It does not pretend Bitcoin completion was rolled back or mark the 700-unit change spendable. A later admission retry reuses this action and does not create a second debit or transaction. Multi-asset processing must similarly retain each topic’s individual result; one successful topic does not authorize credits on the others.

### A.103. Managed-only two-phase action

Alice authorizes the final transfer but requests signAndProcess:false. No foreign script is involved; the fixture wallet chooses to prepare its own signature now and defer processing.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTAz",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens transfer reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScriptLength": 107
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e5022c016d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 1",
        "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
      }
    ],
    "labels": [
      "p color plan 0 6 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 6 757470757473223a5b7b226f7574707574496e646578223a312c2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 6 345f30222c2264657269766174696f6e507265666978223a2243413d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 6 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226535343435623136313336303434383464373535616437633136",
      "p color plan 4 6 39663365333766363361363836633864316231306533626165303737366538646233616130345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 6 6f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTAz",
  "status": "success",
  "result": {
    "signableTransaction": {
      "tx": [1, 1, 1, 1, 198, 31, 249, 131, 77, 82, 252, 17, 14, 118, 209, 226, 45, 0, 191, 153, 22, 85, 108, 118, 10, 132, 96, 232, 104, 66, 48, 0, 134, 21, 125, 180, 2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 1, 0, 0, 0, 1, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 230, 211, 128, 197, 139, 58, 41, 235, 150, 216, 47, 69, 115, 158, 17, 71, 10, 16, 219, 11, 105, 179, 121, 227, 179, 113, 239, 18, 99, 254, 51, 167, 2, 32, 115, 136, 26, 81, 11, 237, 158, 175, 95, 45, 166, 12, 25, 3, 147, 82, 225, 55, 152, 6, 78, 221, 152, 206, 168, 20, 249, 193, 219, 184, 26, 206, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 44, 1, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 188, 2, 109, 118, 169, 20, 197, 248, 172, 11, 49, 150, 233, 155, 255, 17, 106, 15, 201, 180, 26, 129, 151, 72, 26, 9, 136, 172, 220, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
      "reference": "bWFuZGFsYS1wYXktMDAwMDE="
    }
  }
}
```

The pending reference remains valid for a later signAction with an empty spends object, because no caller script remains to be supplied. The wallet still refreshes overlay state and consent before processing. Returning fully populated scripts inside a pending action does not assert admission or release its reservations.

### A.104. Process a managed-only pending action

Start with the prepared action in A.103. Its sources remain current and the recorded permission remains valid. No new unlocking script is needed.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTA0",
  "call": "signAction",
  "args": {
    "reference": "bWFuZGFsYS1wYXktMDAwMDE=",
    "spends": {},
    "options": {
      "returnTXIDOnly": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTA0",
  "status": "success",
  "result": {
    "txid": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6"
  }
}
```

The wallet completes the saved action after revalidation and submits it to the A topic. It shares the reservation and authorization already associated with the prepared transaction and does not bill the user’s policy twice.

### A.105. Discover multiple assets without knowing their IDs

This independent inventory contains C reserved by a pending offer, A available, and H available authority. Canonical outpoint ordering puts C before A before H. The origin is authorized to read all three.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTA1",
  "call": "listOutputs",
  "args": {
    "basket": "p color assets",
    "include": "locking scripts",
    "includeTags": true,
    "limit": 2,
    "offset": 0
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTA1",
  "status": "success",
  "result": {
    "totalOutputs": 3,
    "outputs": [
      {
        "outpoint": "91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47.0",
        "satoshis": 1000,
        "lockingScript": "0002b80b6d76a91482a6d141057b6bd1d85839bd83b58f6e657c0a9088ac",
        "spendable": false,
        "tags": [
          "color_state_reserved"
        ]
      },
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "satoshis": 1000,
        "lockingScript": "0002e8036d76a9146cbd20c18911529dd4a707cbe7abcd296a097fe488ac",
        "spendable": true,
        "tags": [
          "color_state_available"
        ]
      }
    ]
  }
}
```

The client derives C and A IDs from the deploy outpoints and scripts. The C record remains visible but is not available for spending. totalOutputs is 3 actual records, not the two records on this page or a sum of their units.

### A.106. Discover an authority-only asset on the next page

The A.105 snapshot has not changed. The client advances by the two records already read.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTA2",
  "call": "listOutputs",
  "args": {
    "basket": "p color assets",
    "include": "locking scripts",
    "includeTags": true,
    "limit": 2,
    "offset": 2
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTA2",
  "status": "success",
  "result": {
    "totalOutputs": 3,
    "outputs": [
      {
        "outpoint": "ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6c.0",
        "satoshis": 1000,
        "lockingScript": "00006d76a91475a06c850b20c3c7e7e9d607f2cc64ba885daaed88ac",
        "spendable": true,
        "tags": [
          "color_state_available"
        ]
      }
    ]
  }
}
```

The H amount is zero because this is authority. The client lists H with one capability even though it has no fungible value holdings. Every available asset can be discovered without a guessed ID or a global storage basket.

### A.107. BRC-112 token-unit balance

Alice has the available A fixture output, carrying 1000 token units and 1000 satoshis. These happen to coincide in this fixture; the sum is determined by token fields.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTA3",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0",
    "limit": 1,
    "offset": 999
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTA3",
  "status": "success",
  "result": {
    "totalOutputs": "1000",
    "outputs": []
  }
}
```

The module ignores limit and offset and returns the whole available token balance. It omits BEEF and never returns output entries for a balance query. Read permission does not grant permission to sign.

### A.108. Authority balance is a capability count

The available H authority fixture is in its authority basket.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTA4",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0 authority"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTA4",
  "status": "success",
  "result": {
    "totalOutputs": "1",
    "outputs": []
  }
}
```

The result means one authority, not one token unit or a zero-valued fungible balance. An accessible H value basket with no available value would return zero separately.

### A.109. Reserved value is excluded from available balance

C’s existing value basket contains only the C output reserved in A.105.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTA5",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance 91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTA5",
  "status": "success",
  "result": {
    "totalOutputs": "0",
    "outputs": []
  }
}
```

The inventory still exposes the reserved record to an authorized reader, but an available-balance query excludes it. Failed pre-signature reservations are rolled back; released-signature exposure is retained under the action lifecycle rules.

### A.110. Exact uint64 maximum over JSON

The fixed-supply issuance from A.38 is complete, admitted, unreserved and owned by Alice. Both ends implement the exact module-balance profile.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTEw",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance 520f26d99fd56c7720ee96497b17a04d2b7c845eb6bce3b4682eec06bf36a5f1v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTEw",
  "status": "success",
  "result": {
    "totalOutputs": "18446744073709551615",
    "outputs": []
  }
}
```

The API and JSON both preserve this decimal string. The binary field is the byte length 20 followed by the UTF-8 bytes of these 20 decimal digits, not a uint64 VarInt.

### A.111. String balance at the JavaScript numeric boundary

In this independent H state, valid authority issuance has produced an available value total of exactly 9007199254740991 units.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTEx",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTEx",
  "status": "success",
  "result": {
    "totalOutputs": "9007199254740991",
    "outputs": []
  }
}
```

This boundary has no special wire treatment: small values, this value and the next integer all use canonical decimal strings. Numeric JSON balances are rejected for this P-basket query.

### A.112. Aggregate greater than uint64 succeeds

In this independent H state, two admitted, available value outputs each carry 18446744073709551615 units. Their exact sum is 36893488147419103230.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTEy",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTEy",
  "status": "success",
  "result": {
    "totalOutputs": "36893488147419103230",
    "outputs": []
  }
}
```

Both outputs satisfy the per-output uint64 limit. The wallet sums them exactly and returns the full decimal string. It does not round, wrap, truncate to one output or require an enumeration fallback.

### A.113. Transport cannot preserve the exact balance

The H balance is 9007199254740993 units, but this wallet adapter cannot emit the exact-integer profile.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTEz",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTEz",
  "status": "error",
  "code": 2,
  "description": "Exact module balance representation is unsupported"
}
```

The adapter returns an ordinary error rather than casting to Number. An older receiver encountering an unsupported exact result must likewise raise a local protocol error; this example does not claim that all deployed older implementations already enforce that rule.

### A.114. Reject reversed balance prefix

The caller places balance outside the reserved module namespace.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTE0",
  "call": "listOutputs",
  "args": {
    "basket": "balance p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTE0",
  "status": "error",
  "code": 6,
  "description": "Balance prefix must follow the module identifier"
}
```

The wallet does not bypass module dispatch or normal read permission checks. The supported order is p color balance followed by the asset tag.

### A.115. Discovery permission is required

This origin lacks inventory read permission and forbids an interactive request.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTE1",
  "call": "listOutputs",
  "args": {
    "basket": "p color assets",
    "include": "locking scripts",
    "includeTags": true,
    "limit": 2,
    "offset": 0,
    "seekPermission": false
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTE1",
  "status": "error",
  "code": 1,
  "description": "Colored Tokens inventory read permission is required"
}
```

No output, asset ID or count is disclosed. A generic cryptographic or spending grant does not automatically authorize this inventory scope.

### A.116. Receipt UTF-8 bound is enforced before module use

The instructions below are valid JSON text but exceed the core 1000 UTF-8 byte bound. The repeated non-ASCII characters also demonstrate why character count is insufficient.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTE2",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"ééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTE2",
  "status": "error",
  "code": 6,
  "description": "customInstructions exceeds 1000 UTF-8 bytes"
}
```

Core validation rejects this receipt before key derivation or proof handling. Valid bounded instructions still undergo the independent protocol-length, ownership and closed-object checks.

### A.117. Pending admission is visible without spendable credit

The transfer from A.14 has completed on Bitcoin, consuming A’s source, but its generated 700-unit change is awaiting overlay admission. This independent inventory has only that locally controlled pending record.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTE3",
  "call": "listOutputs",
  "args": {
    "basket": "p color assets",
    "include": "locking scripts",
    "includeTags": true,
    "limit": 10,
    "offset": 0
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTE3",
  "status": "success",
  "result": {
    "totalOutputs": 1,
    "outputs": [
      {
        "outpoint": "b47d158600304268e860840a766c551699bf002de2d1760e11fc524d83f91fc6.1",
        "satoshis": 1,
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502bc026d76a914c5f8ac0b3196e99bff116a0fc9b41a8197481a0988ac",
        "spendable": false,
        "tags": [
          "color_state_pending"
        ]
      }
    ]
  }
}
```

The client may display 700 prospective units with pending status. It must not display them as available or resurrect the spent source. The available-balance query is zero until the required admission checks succeed.

### A.118. Cached proof with a wrong scope cannot justify receipt

The request is the valid compact swap receipt from A.77. Historical B admission evidence is unavailable, and the wallet's only cached packet covers the unrelated C asset, `91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47_0`, at subject `91fbfbe785fbd6ba33974791c1e59e343a0e783cba0f195bc2b037f1afed7d47.0`. It contains no B token ancestry. The ordinary transaction sources and current received-output membership are authenticated, but no alternative B historical admission or complete lineage evidence is available.

The application sends:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "bWFuZGFsYTAwMTE4",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 150, 1, 54, 0, 28, 191, 237, 208, 218, 246, 230, 158, 87, 121, 87, 173, 194, 150, 14, 100, 108, 111, 96, 200, 208, 205, 120, 87, 205, 177, 91, 168, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 78, 39, 87, 21, 30, 84, 162, 141, 128, 230, 114, 184, 60, 244, 48, 211, 236, 214, 178, 198, 222, 124, 228, 112, 35, 118, 12, 182, 149, 201, 34, 135, 2, 32, 89, 73, 49, 163, 0, 76, 46, 31, 8, 179, 131, 75, 177, 221, 243, 123, 38, 159, 20, 129, 209, 195, 87, 106, 181, 72, 54, 226, 29, 134, 91, 247, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 255, 255, 255, 255, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 243, 224, 239, 230, 103, 35, 14, 205, 159, 117, 14, 92, 28, 51, 72, 238, 137, 218, 221, 37, 207, 241, 26, 215, 14, 217, 10, 14, 19, 29, 122, 180, 2, 32, 1, 25, 160, 217, 29, 61, 118, 106, 41, 251, 194, 63, 26, 192, 122, 32, 214, 251, 1, 240, 83, 6, 236, 24, 112, 245, 159, 121, 37, 109, 64, 60, 65, 33, 3, 84, 38, 38, 106, 209, 138, 253, 219, 214, 153, 123, 114, 75, 97, 146, 73, 243, 52, 210, 89, 67, 14, 151, 51, 184, 250, 146, 248, 166, 21, 62, 203, 255, 255, 255, 255, 4, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 161, 126, 245, 61, 21, 117, 167, 11, 183, 39, 253, 9, 174, 23, 39, 39, 14, 129, 186, 120, 175, 13, 1, 88, 144, 230, 122, 111, 222, 101, 99, 183, 2, 208, 7, 109, 118, 169, 20, 68, 153, 11, 238, 68, 47, 177, 89, 169, 202, 170, 89, 123, 152, 153, 45, 45, 141, 105, 134, 136, 172, 231, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 221, 3, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 1,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"b76365de6f7ae69058010daf78ba810e272717ae09fd27b70ba775153df57ea1_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ],
    "description": "Receive authenticated Colored Tokens output"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "bWFuZGFsYTAwMTE4",
  "status": "error",
  "code": 1,
  "description": "Insufficient valid token-lineage evidence for receipt"
}
```

The wallet rejects after validating the cached packet’s scope. Removing proof bytes from the request does not weaken BRC-176 completeness, asset binding or subject binding. A positive current receipt lookup alone does not replace missing historical or lineage evidence.

### A.119. Prepare a height-constrained auction offer

At fixture tip 100200, Alice’s wallet has established the required authenticated processor arrangement for these ordered inputs and the auction lifetime. Alice offers 1000 A units for Bob’s 5000-satoshi contribution. Both authenticated sources are unspent. Alice consents to those exact terms becoming executable after height 100250; she has not authorized a highest-bid-wins promise. Bob has not signed. The fixed output order and accounting are those of A.43.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTE5",
  "call": "createAction",
  "args": {
    "description": "Colored Token auction: 5000 satoshi bid, earliest inclusion after height 100250",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 7,
        "unlockingScriptLength": 107
      },
      {
        "outpoint": "3d41442b05101fe2b9dc74e24853cb278b2e9494b3d78452b0e858b991bce28e.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 9,
        "unlockingScriptLength": 107
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 4999,
        "outputDescription": "Agreed output 1"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369",
      "p color plan 3 4 67686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 100250,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": false,
      "signAndProcess": false,
      "acceptDelayedBroadcast": false,
      "noSend": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTE5",
  "status": "success",
  "result": {
    "signableTransaction": {
      "tx": [1, 1, 1, 1, 253, 43, 129, 235, 21, 176, 106, 76, 206, 221, 15, 143, 191, 166, 166, 95, 180, 242, 18, 137, 12, 29, 111, 21, 253, 177, 136, 59, 116, 21, 52, 56, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 159, 105, 230, 49, 169, 218, 22, 135, 113, 98, 196, 53, 77, 87, 196, 123, 162, 253, 29, 149, 143, 188, 1, 84, 160, 249, 93, 131, 214, 237, 218, 186, 2, 32, 107, 144, 99, 50, 224, 129, 85, 208, 217, 199, 185, 161, 210, 112, 6, 171, 121, 26, 175, 141, 146, 231, 174, 220, 246, 30, 223, 13, 230, 130, 62, 228, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 7, 0, 0, 0, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 135, 19, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 102, 23, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 154, 135, 1, 0],
      "reference": "Y29sb3ItYXVjdGlvbi0wMDAx"
    }
  }
}
```

The wallet validates the A overlay and both source scripts, reserves A, and signs Alice’s input with ALL|FORKID. Bob’s unlocking script stays empty. Sequence numbers 7 and 9 activate the height constraint; the current transaction ID is provisional. No ordinary submission, spendable credit or settled debit occurs. Alice’s satoshi receipt would be 5990, comprising 1000 carrier satoshis plus Bob’s 5000 contribution less the 10-satoshi fee. The pending offer may be delivered to Bob. Its preparation does not assert processor acceptance; that requires the later processing step. The wallet retains responsibility for the coordination arrangement.

### A.120. Revise a sequence and regenerate affected signatures

Start independently from A.119. Bob supplies a signature for sequence 10 on his input. The wallet’s saved-action contract permits the requested sequence revision after revalidation, and Alice consents with knowledge that the earlier revision remains exposed. The tip is still 100200.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTIw",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": true,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTIw",
  "status": "success",
  "result": {
    "txid": "a0e189f78d599eca8039f64ce6d223d876fa009beb6a2c1c43cc25d110cb1c35",
    "tx": [1, 1, 1, 1, 53, 28, 203, 16, 209, 37, 204, 67, 28, 44, 106, 235, 155, 0, 250, 118, 216, 35, 210, 230, 76, 246, 57, 128, 202, 158, 89, 141, 247, 137, 225, 160, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 99, 76, 112, 100, 26, 160, 52, 158, 2, 200, 61, 109, 25, 104, 221, 186, 244, 162, 195, 240, 46, 102, 236, 162, 68, 123, 250, 89, 197, 198, 235, 213, 2, 32, 10, 120, 1, 11, 133, 194, 239, 69, 194, 136, 209, 232, 154, 192, 25, 160, 93, 142, 90, 144, 42, 191, 9, 116, 40, 27, 7, 28, 11, 121, 21, 44, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 7, 0, 0, 0, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 154, 6, 148, 48, 63, 244, 24, 134, 128, 4, 232, 156, 65, 52, 233, 135, 49, 245, 182, 66, 68, 21, 110, 69, 156, 186, 193, 162, 233, 154, 163, 120, 2, 32, 61, 90, 245, 193, 175, 206, 20, 152, 147, 93, 211, 151, 13, 6, 255, 159, 36, 55, 12, 126, 157, 48, 207, 38, 173, 91, 84, 70, 218, 106, 192, 166, 65, 33, 3, 160, 157, 3, 72, 11, 29, 38, 247, 73, 9, 10, 207, 245, 96, 66, 246, 62, 16, 232, 44, 20, 186, 199, 1, 88, 187, 130, 33, 158, 97, 202, 129, 10, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 135, 19, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 102, 23, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 154, 135, 1, 0]
  }
}
```

The wallet reconstructs sequences \[7, 10], rechecks source/overlay state and the unchanged price, validates Bob’s new script, and regenerates Alice’s signature because her ALL|FORKID digest commits to the revised sequence set. All scripts now pass, but the transaction is still consensus-non-final. noSend returns the exact bytes without processing or credit. Both released revisions share one exposure record. This noSend result is prepared, not processor-accepted; upon a processing request the wallet must enforce acceptance and supersession under its arrangement. Sequence 10 alone has not revoked sequence 9.

### A.121. Reject a stale signature on a sequence update

Start from A.119 at tip 100200. Bob’s script below was signed for sequence 9, but this request changes it to 10.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTIx",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "47304402202fe02afd05fb618ddae3cfef25e3b2019efd0175838f148c12598e983c42022a02201faa124cca6e925c26563041f6bbc4fb90612c69949bb32213840e41289a8542412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": true,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTIx",
  "status": "error",
  "code": 6,
  "description": "Provided unlocking script is invalid for revised sequence"
}
```

The wallet verifies the supplied script against the revised preimage and rejects it. It does not overwrite Bob’s signature, restore the old sequence silently, or return a complete transaction. The previously released Alice signature remains recorded; no new signature is released.

### A.122. Do not process a signed non-final bid as settled

Start from A.119 at tip 100200. Bob supplies the correct original script, but asks for ordinary processing now.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTIy",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "47304402202fe02afd05fb618ddae3cfef25e3b2019efd0175838f148c12598e983c42022a02201faa124cca6e925c26563041f6bbc4fb90612c69949bb32213840e41289a8542412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81"
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTIy",
  "status": "error",
  "code": 1,
  "description": "Auction transaction is not yet consensus-final"
}
```

The complete scripts would be valid, but the height constraint is not yet satisfied. The wallet retains the pending action and exposure and reports the failed processing request. Delayed relay or an overlay acknowledgement cannot make this a completed settlement. It does not set sequences to maximum or alter lockTime.

### A.123. A higher bid is a new authorized transaction context

The A.119 revision has already been delivered, and its inputs are still unspent at tip 100200. Bob raises his contribution from 5000 to 6000 satoshis. Alice authorizes a linked revision under the wallet’s processor arrangement. The wallet, rather than the application, is responsible for getting the valid higher-sequence revision accepted when processing is requested. Both parties supply signatures for the new exact layout.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTIz",
  "call": "createAction",
  "args": {
    "description": "Colored Token auction: 6000 satoshi bid, earliest inclusion after height 100250",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 8,
        "unlockingScript": "483045022100fc195e0691cfa2275c13f12af6e11418372d6b1da436cb09232a94aab5dec98f02204451d5236f9ff5499d24ec9d2e3fdf935d55e132ec2f6edd969f7e4403964abc412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "3d41442b05101fe2b9dc74e24853cb278b2e9494b3d78452b0e858b991bce28e.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 10,
        "unlockingScript": "483045022100fc915a18d8c45b31908e6d231ffaf662a82a4a951cc1e8d89c88cce5340d940a0220200ec334eaf051d6aa394b8b434414a71032d3275c1b2c4ede2f621192a00a8f412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 3999,
        "outputDescription": "Agreed output 1"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369",
      "p color plan 3 4 67686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 100250,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": false,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false,
      "noSend": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTIz",
  "status": "success",
  "result": {
    "txid": "400f4a99000d080530654e0c8faa9b9878534b57c94bfebafee6e37c445101aa",
    "tx": [1, 1, 1, 1, 170, 1, 81, 68, 124, 227, 230, 254, 186, 254, 75, 201, 87, 75, 83, 120, 152, 155, 170, 143, 12, 78, 101, 48, 5, 8, 13, 0, 153, 74, 15, 64, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 252, 25, 94, 6, 145, 207, 162, 39, 92, 19, 241, 42, 246, 225, 20, 24, 55, 45, 107, 29, 164, 54, 203, 9, 35, 42, 148, 170, 181, 222, 201, 143, 2, 32, 68, 81, 213, 35, 111, 159, 245, 73, 157, 36, 236, 157, 46, 63, 223, 147, 93, 85, 225, 50, 236, 47, 110, 221, 150, 159, 126, 68, 3, 150, 74, 188, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 8, 0, 0, 0, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 252, 145, 90, 24, 216, 196, 91, 49, 144, 142, 109, 35, 31, 250, 246, 98, 168, 42, 74, 149, 28, 193, 232, 216, 156, 136, 204, 229, 52, 13, 148, 10, 2, 32, 32, 14, 195, 52, 234, 240, 81, 214, 170, 57, 75, 139, 67, 68, 20, 167, 16, 50, 211, 39, 92, 27, 44, 78, 222, 47, 98, 17, 146, 160, 10, 143, 65, 33, 3, 160, 157, 3, 72, 11, 29, 38, 247, 73, 9, 10, 207, 245, 96, 66, 246, 62, 16, 232, 44, 20, 186, 199, 1, 88, 187, 130, 33, 158, 97, 202, 129, 10, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 159, 15, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 78, 27, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 154, 135, 1, 0]
  }
}
```

The wallet links the new context to the existing reservation instead of rejecting it as an unrelated spend or freeing the old exposure. Alice would receive 6990 satoshis and Bob 3999 ordinary change plus the token carrier. The fee remains 10. Both scripts, the new preimages and the A overlay are checked. The bid stays pending with noSend. The wallet’s processor arrangement must enforce acceptance of this valid higher-sequence replacement when processing is requested; a warning about old bids is not a substitute. Until that step succeeds, noSend does not claim supersession. A highest-bid-wins assertion also needs validated auction bid-ordering rules.

### A.124. All-final sequences bypass a future lock time

The application presents the same future lockTime, but every sequence below is 4294967295. Alice’s only permission requires no settlement before the stated auction height; she declines an immediate-settlement revision.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTI0",
  "call": "createAction",
  "args": {
    "description": "Colored Token auction: 5000 satoshi bid, earliest inclusion after height 100250",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100c68c6871602a191d110a84dc3b2f293bdf7f9883926f45393ef4aad12abef48f02204c314f965de9cd8b44244ce062965554932c9692ef86c16586db50fc1dcc15f5412103a3c96df02329cbbf056ee25ee0c24ba36c7620cce9b4eba41972327a12a1f22d"
      },
      {
        "outpoint": "3d41442b05101fe2b9dc74e24853cb278b2e9494b3d78452b0e858b991bce28e.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 4294967295,
        "unlockingScript": "47304402203ffddea64d228f284f78e00b2f613133d96a853a22f1e70aa573f64829bfd62502206e88468f7edbf6741bbe9b5433ed41bf72178432dd85cd6853a5ac722b07d205412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81"
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 4999,
        "outputDescription": "Agreed output 1"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369",
      "p color plan 3 4 67686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 100250,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": false,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false,
      "noSend": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTI0",
  "status": "error",
  "code": 1,
  "description": "Consent does not cover immediately final auction terms"
}
```

The wallet computes effective finality from all inputs. It informs Alice that lockTime is bypassed rather than claiming the transaction waits until height 100250. The scripts are otherwise valid, but the authorization fails. Nothing new is signed or credited. An explicitly authorized immediate transaction would not be rejected merely for using final sequences.

### A.125. Settle after the lock height and admit the token leg

Start independently from A.119. The evaluated block context is now height 100251, both sources remain unspent, the A overlay answers positively, and Alice’s authorization remains applicable. At height exactly 100250 the strict comparison would still fail. Bob supplies the original signature.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTI1",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "47304402202fe02afd05fb618ddae3cfef25e3b2019efd0175838f148c12598e983c42022a02201faa124cca6e925c26563041f6bbc4fb90612c69949bb32213840e41289a8542412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81"
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTI1",
  "status": "success",
  "result": {
    "txid": "386568731d8b742983b6d98a9bb20bb504a402db11aee0de81e09e1e2d335d47",
    "tx": [1, 1, 1, 1, 71, 93, 51, 45, 30, 158, 224, 129, 222, 224, 174, 17, 219, 2, 164, 4, 181, 11, 178, 155, 138, 217, 182, 131, 41, 116, 139, 29, 115, 104, 101, 56, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 159, 105, 230, 49, 169, 218, 22, 135, 113, 98, 196, 53, 77, 87, 196, 123, 162, 253, 29, 149, 143, 188, 1, 84, 160, 249, 93, 131, 214, 237, 218, 186, 2, 32, 107, 144, 99, 50, 224, 129, 85, 208, 217, 199, 185, 161, 210, 112, 6, 171, 121, 26, 175, 141, 146, 231, 174, 220, 246, 30, 223, 13, 230, 130, 62, 228, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 7, 0, 0, 0, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 47, 224, 42, 253, 5, 251, 97, 141, 218, 227, 207, 239, 37, 227, 178, 1, 158, 253, 1, 117, 131, 143, 20, 140, 18, 89, 142, 152, 60, 66, 2, 42, 2, 32, 31, 170, 18, 76, 202, 110, 146, 92, 38, 86, 48, 65, 246, 187, 196, 251, 144, 97, 44, 105, 148, 155, 179, 34, 19, 132, 14, 65, 40, 154, 133, 66, 65, 33, 3, 160, 157, 3, 72, 11, 29, 38, 247, 73, 9, 10, 207, 245, 96, 66, 246, 62, 16, 232, 44, 20, 186, 199, 1, 88, 187, 130, 33, 158, 97, 202, 129, 9, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 135, 19, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 102, 23, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 154, 135, 1, 0]
  }
}
```

The wallet rechecks finality, scripts, satoshi accounting, A conservation and its processors’ agreed latest revision, then processes these unchanged signed bytes. In this independent fixture no later revision has been accepted. Sequences remain 7 and 9. It submits to `tm_color_e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0` and verifies admission of output 0 under the configured provider policy. Alice’s default-basket satoshis and the token destination are reconciled once; the source reservation resolves on established completion. If required admission instead failed, the wallet would retain the actual pending/error state rather than claim a reversal.

### A.126. An earlier bid consumes the named token input

Start from A.119, but an earlier authorized revision has now consumed A before the requested replacement was accepted. A current lookup therefore returns no spendable A outpoint.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTI2",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": true,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTI2",
  "status": "error",
  "code": 1,
  "description": "Auction input has been consumed by a conflicting revision"
}
```

The wallet verifies the conflict, does not sign or process this competing revision, and reconciles its shared exposure record against the observed spender. It cannot credit prospective outputs from both revisions or count a sequence increase as evidence that this revision won.

### A.127. Reject internalization of a fully signed non-final receipt

This independent case selects Bob’s wallet/root (private fixture integer 22), which controls output 0 of the supplied auction transaction. Both scripts pass, but the evaluated chain context is height 100200. A provider’s pending record or premature positive answer cannot waive that fact.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTI3",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 71, 93, 51, 45, 30, 158, 224, 129, 222, 224, 174, 17, 219, 2, 164, 4, 181, 11, 178, 155, 138, 217, 182, 131, 41, 116, 139, 29, 115, 104, 101, 56, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 159, 105, 230, 49, 169, 218, 22, 135, 113, 98, 196, 53, 77, 87, 196, 123, 162, 253, 29, 149, 143, 188, 1, 84, 160, 249, 93, 131, 214, 237, 218, 186, 2, 32, 107, 144, 99, 50, 224, 129, 85, 208, 217, 199, 185, 161, 210, 112, 6, 171, 121, 26, 175, 141, 146, 231, 174, 220, 246, 30, 223, 13, 230, 130, 62, 228, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 7, 0, 0, 0, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 47, 224, 42, 253, 5, 251, 97, 141, 218, 227, 207, 239, 37, 227, 178, 1, 158, 253, 1, 117, 131, 143, 20, 140, 18, 89, 142, 152, 60, 66, 2, 42, 2, 32, 31, 170, 18, 76, 202, 110, 146, 92, 38, 86, 48, 65, 246, 187, 196, 251, 144, 97, 44, 105, 148, 155, 179, 34, 19, 132, 14, 65, 40, 154, 133, 66, 65, 33, 3, 160, 157, 3, 72, 11, 29, 38, 247, 73, 9, 10, 207, 245, 96, 66, 246, 62, 16, 232, 44, 20, 186, 199, 1, 88, 187, 130, 33, 158, 97, 202, 129, 9, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 135, 19, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 102, 23, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 154, 135, 1, 0],
    "outputs": [
      {
        "outputIndex": 0,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04_0\",\"derivationPrefix\":\"Bw==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTI3",
  "status": "error",
  "code": 1,
  "description": "Receipt transaction is consensus-non-final"
}
```

The wallet rejects internalization without silently submitting or crediting 1000 A. At an eligible later context, the same bytes can be reconsidered only with complete receipt, history and current per-asset admission checks. Signature completeness and receipt spendability remain separate facts.

### A.128. Abort does not expire an auction signature

The independently established A.119 offer has been delivered to Bob. The application cancels local processing before lockTime is reached.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTI4",
  "call": "abortAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTI4",
  "status": "success",
  "result": {
    "aborted": true
  }
}
```

The wallet stops its local pending processing and retains the released-signature exposure. This fixture has no processor-accepted revision to cancel. If one existed, cancellation would require coordination and could not be reported as complete from local deletion alone. The earlier transaction may become final after height 100250; lockTime is not an expiry. A remains reserved/unavailable unless a verified conflict or an independently validated condition prevents the earlier capability from consuming it. An explicit conflicting-spend workflow requires consent and does not release this record merely by being requested.

### A.129. Bootstrap a new issuance through the shared discovery topic

The fixed-supply deployment is authorized as in A.28. No provider serves its asset-specific topic before the transaction is signed, but an accepted provider already serves tm\_color. Normal processing is requested.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTI5",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens issuance reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100c5d805453982b10c19f9bde6916d180bbd61d6a0415d8690d53009fe135a43d2022019a4dab39a1fb736771a8e201ab265fa3a9e561c190a8b4eb8e97590e6bd2a50412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "000340420f6d76a914cfebd325666fc742644d84fa85c1128d9cfa05ef88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b224953535545225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a224953535545222c2264657269766174696f6e507265666978",
      "p color plan 1 4 223a2243513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264",
      "p color plan 2 4 63653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a224953535545222c226f7065726174696f6e223a226465706c6f792d6669786564227d5d2c22696e707574506f73697469",
      "p color plan 3 4 6f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTI5",
  "status": "success",
  "result": {
    "txid": "b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98"
  }
}
```

The signed deployment fixes asset ID `b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98_0`. The wallet sends the deployment BEEF to BRC-22 POST `/submit` with header `X-Topics: ["tm_color"]`. A successful discovery response is:

```json
{
  "tm_color": {
    "outputsToAdmit": [0],
    "coinsToRetain": []
  }
}
```

The configured provider validates the deploy and seeds `tm_color_b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98_0` and `ls_color_b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98_0`; the wallet discovers an accepted advertised service and queries:

```json
{
  "service": "ls_color_b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98_0",
  "query": {
    "type": "color-spendability",
    "assetId": "b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98_0",
    "topic": "tm_color_b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98_0",
    "outpoints": [
      "b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98.0"
    ]
  }
}
```

The lookup returns:

```json
{
  "type": "output-list",
  "outputs": [
    {
      "beef": [1, 1, 1, 1, 152, 58, 28, 219, 231, 54, 35, 177, 4, 51, 28, 107, 242, 171, 243, 195, 7, 189, 79, 13, 14, 131, 5, 191, 185, 163, 38, 31, 153, 209, 221, 178, 2, 0, 190, 239, 0, 2, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 1, 0, 0, 0, 1, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 197, 216, 5, 69, 57, 130, 177, 12, 25, 249, 189, 230, 145, 109, 24, 11, 189, 97, 214, 160, 65, 93, 134, 144, 213, 48, 9, 254, 19, 90, 67, 210, 2, 32, 25, 164, 218, 179, 154, 31, 183, 54, 119, 26, 142, 32, 26, 178, 101, 250, 58, 158, 86, 28, 25, 10, 139, 78, 184, 233, 117, 144, 230, 189, 42, 80, 65, 33, 2, 230, 23, 112, 84, 194, 66, 4, 226, 22, 143, 1, 219, 133, 227, 212, 185, 166, 70, 196, 238, 145, 95, 81, 92, 148, 136, 75, 54, 19, 51, 69, 19, 255, 255, 255, 255, 2, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 64, 66, 15, 109, 118, 169, 20, 207, 235, 211, 37, 102, 111, 199, 66, 100, 77, 132, 250, 133, 193, 18, 141, 156, 250, 5, 239, 136, 172, 5, 39, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
      "outputIndex": 0
    }
  ]
}
```

The wallet reconstructs and verifies the returned output, assigns its per-asset basket, preserves the original ISSUE derivation, and credits 1000000 units only after all required admissions succeed. The discovery response alone was not that permission.

### A.130. Discovery succeeds but no per-asset provider is available

Use the same authorized deployment as A.129. Its Bitcoin processing and tm\_color admission succeeded, but configured discovery cannot yet find an accepted service for the final asset ID.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTMw",
  "call": "createAction",
  "args": {
    "description": "Colored Tokens issuance reference action",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12],
    "inputs": [
      {
        "outpoint": "0c4d943ef031945db8a49d30a820891c8b0fdd53fc2dab6c4d7ac3fa78744fc7.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 4294967295,
        "unlockingScript": "483045022100c5d805453982b10c19f9bde6916d180bbd61d6a0415d8690d53009fe135a43d2022019a4dab39a1fb736771a8e201ab265fa3a9e561c190a8b4eb8e97590e6bd2a50412102e6177054c24204e2168f01db85e3d4b9a646c4ee915f515c94884b3613334513"
      }
    ],
    "outputs": [
      {
        "lockingScript": "000340420f6d76a914cfebd325666fc742644d84fa85c1128d9cfa05ef88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b224953535545225d2c226f776e65644f757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a224953535545222c2264657269766174696f6e507265666978",
      "p color plan 1 4 223a2243513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a223032373962653636376566396463626261633535613036323935636538373062303730323962666364623264",
      "p color plan 2 4 63653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a224953535545222c226f7065726174696f6e223a226465706c6f792d6669786564227d5d2c22696e707574506f73697469",
      "p color plan 3 4 6f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a317d5d2c22736967686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": true,
      "signAndProcess": true,
      "acceptDelayedBroadcast": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTMw",
  "status": "error",
  "code": 1,
  "description": "Deployment processed; per-asset admission remains pending"
}
```

The wallet retains transaction `b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98` and its prospective asset basket in pending state. It reports the actual processing result through its action records; the error does not imply that the transaction was undone. Reconciliation and resubmission of the retained action MUST use the same deployment and be idempotent; they must not select new inputs or create a second issuance. This does not make a repeated createAction request idempotent: its CWI id is only correlation. The application first inspects the retained action through normal action discovery and the pending inventory, rather than blindly issuing a fresh createAction. Inventory may expose the signed pending output with spendable:false, but its available balance is "0". Once accepted per-asset evidence arrives, reconciliation credits it once.

### A.131. Discovery admission is insufficient for an incoming receipt

The signed deployment is present in tm\_color, but its per-asset lookup does not show the received output as admitted and unspent. Alice controls the ISSUE-derived output.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTMx",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 152, 58, 28, 219, 231, 54, 35, 177, 4, 51, 28, 107, 242, 171, 243, 195, 7, 189, 79, 13, 14, 131, 5, 191, 185, 163, 38, 31, 153, 209, 221, 178, 2, 0, 190, 239, 0, 2, 2, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 1, 0, 0, 0, 1, 199, 79, 116, 120, 250, 195, 122, 77, 108, 171, 45, 252, 83, 221, 15, 139, 28, 137, 32, 168, 48, 157, 164, 184, 93, 148, 49, 240, 62, 148, 77, 12, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 197, 216, 5, 69, 57, 130, 177, 12, 25, 249, 189, 230, 145, 109, 24, 11, 189, 97, 214, 160, 65, 93, 134, 144, 213, 48, 9, 254, 19, 90, 67, 210, 2, 32, 25, 164, 218, 179, 154, 31, 183, 54, 119, 26, 142, 32, 26, 178, 101, 250, 58, 158, 86, 28, 25, 10, 139, 78, 184, 233, 117, 144, 230, 189, 42, 80, 65, 33, 2, 230, 23, 112, 84, 194, 66, 4, 226, 22, 143, 1, 219, 133, 227, 212, 185, 166, 70, 196, 238, 145, 95, 81, 92, 148, 136, 75, 54, 19, 51, 69, 19, 255, 255, 255, 255, 2, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 64, 66, 15, 109, 118, 169, 20, 207, 235, 211, 37, 102, 111, 199, 66, 100, 77, 132, 250, 133, 193, 18, 141, 156, 250, 5, 239, 136, 172, 5, 39, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 0,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color b2ddd1991f26a3b9bf05830e0d4fbd07c3f3abf26b1c3304b12336e7db1c3a98v0",
          "customInstructions": "{\"version\":1,\"assetId\":\"ISSUE\",\"derivationPrefix\":\"CQ==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"}"
        }
      }
    ]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTMx",
  "status": "error",
  "code": 1,
  "description": "Received deploy output is absent from its asset overlay"
}
```

The wallet rejects without submission to either topic. The sender or higher-level deployment flow must finish asset-service bootstrap before retrying this receipt. A caller-supplied service URL or discovery-topic acknowledgement cannot replace the independently derived per-asset service.

### A.132. Non-P balance wire compatibility

The ordinary savings basket contains 2500 available satoshis and the origin has read permission. This is the existing non-P BRC-112 query.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTMy",
  "call": "listOutputs",
  "args": {
    "basket": "balance savings"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTMy",
  "status": "success",
  "result": {
    "totalOutputs": 2500,
    "outputs": []
  }
}
```

totalOutputs remains a JSON/API number and the existing numeric VarInt bytes fd c4 09 in the binary response. The P-basket decimal-text format does not apply. Ordinary p color assets inventory counts also retain numeric VarInt encoding, even though the basket starts with p.

### A.133. P-basket balance resource exhaustion fails explicitly

This wallet documents a response-size bound. The requested exact aggregate would exceed it; this case assumes individually valid u64 outputs and sufficient input provenance, not an invalid asset.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTMz",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance ece04819257245af3290370225db8e2d3b9541096d8c0fb3a8cd3c09158c7d6cv0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTMz",
  "status": "error",
  "code": 1,
  "description": "Exact balance exceeds documented response resource limit"
}
```

No success value is returned. Holdings remain tracked, and the wallet does not truncate digits, cap the sum, silently page the balance, emit a number, or switch back to numeric VarInt. The receiver likewise checks the declared byte length before allocation and rejects over-limit or noncanonical text. This implementation bound is distinct from the per-output uint64 consensus-independent token rule.

### A.134. Processor coordination is required before a partial offer

Use A.119’s sources, terms and fixture tip, but this wallet cannot establish authenticated processor coverage for the family’s intended lifetime.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTM0",
  "call": "createAction",
  "args": {
    "description": "Colored Token auction: 5000 satoshi bid, earliest inclusion after height 100250",
    "inputBEEF": [2, 0, 190, 239, 0, 2, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61],
    "inputs": [
      {
        "outpoint": "e5445b1613604484d755ad7c169f3e37f63a686c8d1b10e3bae0776e8db3aa04.0",
        "inputDescription": "Authenticated input 0",
        "sequenceNumber": 7,
        "unlockingScriptLength": 107
      },
      {
        "outpoint": "3d41442b05101fe2b9dc74e24853cb278b2e9494b3d78452b0e858b991bce28e.0",
        "inputDescription": "Authenticated input 1",
        "sequenceNumber": 9,
        "unlockingScriptLength": 107
      }
    ],
    "outputs": [
      {
        "lockingScript": "2004aab38d6e77e0bae3101b8d6c683af6373e9f167cad55d784446013165b44e502e8036d76a914981d7a3bcc51208c145c27145fcd722bcf78c98b88ac",
        "satoshis": 1,
        "outputDescription": "Agreed output 0"
      },
      {
        "lockingScript": "76a91430e2861546dcf665575f3c280857e6d2c4d944da88ac",
        "satoshis": 4999,
        "outputDescription": "Agreed output 1"
      }
    ],
    "labels": [
      "p color plan 0 4 7b2276657273696f6e223a312c22617373657473223a5b22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130345f30225d2c226f776e65644f",
      "p color plan 1 4 757470757473223a5b5d2c226f7065726174696f6e73223a5b7b2261737365744964223a22653534343562313631333630343438346437353561643763313639663365333766363361363836633864316231306533626165303737366538646233616130",
      "p color plan 2 4 345f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f736974696f6e73223a5b7b2261737365744964223a6e756c6c2c22696e646578223a327d5d2c227369",
      "p color plan 3 4 67686173685479706573223a5b5d7d"
    ],
    "version": 1,
    "lockTime": 100250,
    "options": {
      "randomizeOutputs": false,
      "returnTXIDOnly": false,
      "signAndProcess": false,
      "acceptDelayedBroadcast": false,
      "noSend": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTM0",
  "status": "error",
  "code": 2,
  "description": "Required processor replacement coordination is unavailable"
}
```

The wallet fails before releasing Alice’s signature or a signable transaction. It rolls back only provisional reservations. The application is not asked to implement miner selection, propagate revisions itself, or accept a disclaimer in place of coordinated replacement.

### A.135. Accept a higher sequence through the coordinated processors

The wallet retains the A.119 saved context at height 100200. Bob previously completed the original revision and the wallet reconciled its processor acceptance as `386568731d8b742983b6d98a9bb20bb504a402db11aee0de81e09e1e2d335d47`, sequence vector \[7, 9]. Both named inputs remain unspent; the token source remains currently admitted. This call requests processing of the valid \[7, 10] revision, allowing delayed broadcast.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTM1",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTM1",
  "status": "success",
  "result": {
    "txid": "a0e189f78d599eca8039f64ce6d223d876fa009beb6a2c1c43cc25d110cb1c35",
    "tx": [1, 1, 1, 1, 53, 28, 203, 16, 209, 37, 204, 67, 28, 44, 106, 235, 155, 0, 250, 118, 216, 35, 210, 230, 76, 246, 57, 128, 202, 158, 89, 141, 247, 137, 225, 160, 2, 0, 190, 239, 0, 3, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 1, 0, 0, 0, 2, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 99, 76, 112, 100, 26, 160, 52, 158, 2, 200, 61, 109, 25, 104, 221, 186, 244, 162, 195, 240, 46, 102, 236, 162, 68, 123, 250, 89, 197, 198, 235, 213, 2, 32, 10, 120, 1, 11, 133, 194, 239, 69, 194, 136, 209, 232, 154, 192, 25, 160, 93, 142, 90, 144, 42, 191, 9, 116, 40, 27, 7, 28, 11, 121, 21, 44, 65, 33, 3, 163, 201, 109, 240, 35, 41, 203, 191, 5, 110, 226, 94, 224, 194, 75, 163, 108, 118, 32, 204, 233, 180, 235, 164, 25, 114, 50, 122, 18, 161, 242, 45, 7, 0, 0, 0, 142, 226, 188, 145, 185, 88, 232, 176, 82, 132, 215, 179, 148, 148, 46, 139, 39, 203, 83, 72, 226, 116, 220, 185, 226, 31, 16, 5, 43, 68, 65, 61, 0, 0, 0, 0, 107, 72, 48, 69, 2, 33, 0, 154, 6, 148, 48, 63, 244, 24, 134, 128, 4, 232, 156, 65, 52, 233, 135, 49, 245, 182, 66, 68, 21, 110, 69, 156, 186, 193, 162, 233, 154, 163, 120, 2, 32, 61, 90, 245, 193, 175, 206, 20, 152, 147, 93, 211, 151, 13, 6, 255, 159, 36, 55, 12, 126, 157, 48, 207, 38, 173, 91, 84, 70, 218, 106, 192, 166, 65, 33, 3, 160, 157, 3, 72, 11, 29, 38, 247, 73, 9, 10, 207, 245, 96, 66, 246, 62, 16, 232, 44, 20, 186, 199, 1, 88, 187, 130, 33, 158, 97, 202, 129, 10, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 62, 32, 4, 170, 179, 141, 110, 119, 224, 186, 227, 16, 27, 141, 108, 104, 58, 246, 55, 62, 159, 22, 124, 173, 85, 215, 132, 68, 96, 19, 22, 91, 68, 229, 2, 232, 3, 109, 118, 169, 20, 152, 29, 122, 59, 204, 81, 32, 140, 20, 92, 39, 20, 95, 205, 114, 43, 207, 120, 201, 139, 136, 172, 135, 19, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 48, 226, 134, 21, 70, 220, 246, 101, 87, 95, 60, 40, 8, 87, 230, 210, 196, 217, 68, 218, 136, 172, 102, 23, 0, 0, 0, 0, 0, 0, 25, 118, 169, 20, 150, 247, 198, 175, 245, 135, 77, 44, 87, 248, 202, 117, 70, 109, 54, 32, 255, 251, 155, 196, 136, 172, 154, 135, 1, 0]
  }
}
```

The wallet validates the new Bob signature, regenerates Alice’s affected signature and authenticates the required processors’ acceptance of `a0e189f78d599eca8039f64ce6d223d876fa009beb6a2c1c43cc25d110cb1c35` as the latest revision superseding `386568731d8b742983b6d98a9bb20bb504a402db11aee0de81e09e1e2d335d47`. Their evidence binds the fixture network, both ordered outpoints, sequence vector \[7, 10], processor identities and the arrangement’s lifetime and obligations. Only after all required acceptance evidence agrees does this success return. It means processor-accepted pending processing under acceptDelayedBroadcast, not mined settlement or spendable overlay credit. The processors must retain the new revision and suppress stale preference; the application has no processor-specific work to perform.

### A.136. A valid revision refused by a processor is an explicit failure

Use exactly A.135’s valid candidate, but a required processor refuses it under a replacement policy that the wallet was responsible for arranging. Another required processor has already accepted it.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTM2",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTM2",
  "status": "error",
  "code": 1,
  "description": "Valid replacement was not accepted by the required processors"
}
```

The wallet reports failure of the coordination obligation, preserves both transmitted revisions, reconciles partial acceptance and arranges recovery. It does not call the transaction invalid, report successful replacement, silently settle the older bid, or delegate processor negotiation to the application. The error does not undo the processor that already accepted the new bytes.

### A.137. Timeout leaves acceptance uncertain

Use A.135’s candidate. The wallet submitted it, but the required acknowledgement is lost. It cannot yet establish whether all required processors accepted the replacement.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTM3",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTM3",
  "status": "error",
  "code": 1,
  "description": "Processor replacement acceptance is unconfirmed"
}
```

The wallet keeps the candidate transaction ID, exact bytes, reservations and transmitted exposure. It queries authenticated state and retries the same transaction idempotently rather than generating another revision or restoring the earlier one. A later acknowledgement must match the exact candidate, family and applicable arrangement; a generic HTTP success cannot finish reconciliation.

### A.138. An older revision cannot be revived after restart

Processors have accepted `400f4a99000d080530654e0c8faa9b9878534b57c94bfebafee6e37c445101aa` with sequence vector \[8, 10], as an independently processed version of A.123. After a wallet restart the application supplies the otherwise valid \[7, 10] revision from A.135. The wallet restores its reservation history and authenticates the latest processor state before deciding.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTM4",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTM4",
  "status": "error",
  "code": 6,
  "description": "Replacement sequence is older than the accepted family state"
}
```

The request decreases one sequence relative to the latest accepted revision and therefore is not a valid replacement. The wallet rejects before releasing or submitting a new capability. It must not compare against stale \[7, 9] state or treat provider migration/restart as resetting the family. The already accepted higher revision remains authoritative for coordinated processing.

### A.139. Identical accepted bytes are an idempotent resubmission

Independently start after all A.135 acceptance checks succeeded. A later delivery retry uses the existing sendWith flow for that exact stored transaction; it does not repeat createAction or ask signAction to create a new revision.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTM5",
  "call": "createAction",
  "args": {
    "description": "Resubmit accepted auction revision",
    "options": {
      "sendWith": [
        "a0e189f78d599eca8039f64ce6d223d876fa009beb6a2c1c43cc25d110cb1c35"
      ],
      "acceptDelayedBroadcast": true,
      "returnTXIDOnly": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTM5",
  "status": "success",
  "result": {
    "sendWithResults": [
      {
        "txid": "a0e189f78d599eca8039f64ce6d223d876fa009beb6a2c1c43cc25d110cb1c35",
        "status": "unproven"
      }
    ]
  }
}
```

The wallet authenticates the current accepted state and resubmits or confirms the same bytes under the existing arrangement. The unproven status has its ordinary BRC-100 meaning; it does not claim mining or overlay credit. There is no new signature, sequence increment, issuance, reservation or spending charge. If a later revision had been accepted, this older transaction could not be resubmitted as preferred.

### A.140. Cancellation requires processor reconciliation

The A.135 non-final revision is processor-accepted and still outstanding. The application now requests cancellation, but the wallet cannot establish cancellation under the processor arrangement.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQw",
  "call": "abortAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQw",
  "status": "error",
  "code": 1,
  "description": "Processor-accepted action cancellation could not be established"
}
```

The wallet may stop its local work, but it cannot report that the coordinated action was successfully cancelled. It retains the processor state and released exposure, informs the application of the failure and continues reconciliation. Neither local reference deletion nor noSend expiry revokes the transaction or the processors’ obligations.

### A.141. An overlay answer cannot stand in for processor acceptance

Use A.135’s valid candidate. The asset overlay reports a prospective record, and a relay returns HTTP success, but the wallet has no authenticated evidence that the required processors accepted and superseded the prior revision.

An application originates this request to the conforming wallet:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQx",
  "call": "signAction",
  "args": {
    "reference": "Y29sb3ItYXVjdGlvbi0wMDAx",
    "spends": {
      "1": {
        "unlockingScript": "4830450221009a0694303ff418868004e89c4134e98731f5b64244156e459cbac1a2e99aa37802203d5af5c1afce1498935dd3970d06ff9f24370c7e9d30cf26ad5b5446da6ac0a6412103a09d03480b1d26f749090acff56042f63e10e82c14bac70158bb82219e61ca81",
        "sequenceNumber": 10
      }
    },
    "options": {
      "noSend": false,
      "returnTXIDOnly": false,
      "acceptDelayedBroadcast": true
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQx",
  "status": "error",
  "code": 1,
  "description": "Required authenticated replacement acceptance evidence is missing"
}
```

The wallet rejects the acceptance claim and preserves uncertain transmitted exposure. Token validity, topical membership, request delivery and sequence replacement acceptance are distinct facts. The application receives an explicit failure and is not expected to inspect provider internals to discover the missing guarantee.

### A.141a. Fixtures for required-profile cases

The following are offline example fixtures using the same Alice identity and trusted-chain assumptions as A.0. Their coinbase outputs are assumed mature and authenticated in the fixture chain; no live transaction is implied. Unless a case states otherwise, source history and baseline overlay checks pass. Each case begins independently. The URI identifiers below are test identifiers, not additional standardized profiles or network endpoints.

The example revision profile at `urn:example:color:revision`, version 1 with null parameters, accepts only the illustrated binary prefix followed by OP\_CODESEPARATOR and the remittance-derived P2PKH. It validates `ext[identifier]` as exactly `{revision: nonnegative integer}` from an authenticated initialization at 0, requires a single same-amount successor whose revision increments by one and whose signing role is verified, and requires resource-update consent. It uses baseline overlay evidence and never marks these outputs eligible for automatic selection. Its optional profileData leaf for the asset is exactly `{expectedRevision: integer}` and must equal the received or successor revision. These fixture rules exercise the extension contract; real profiles must publish their complete rules separately.

| Fixture | Asset ID                                                             | Deploy payload (DAG-CBOR diagnostic JSON)                                                                                                                                        |
| ------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| U       | `5f0ebd014a0b9b4147d3e0da863a74634237eeaf6d62ef04339aa685092dd3f8_0` | `{"req":{"urn:example:color:unknown":{"version":1,"params":null}}}`                                                                                                              |
| V       | `a3e442c17e1fbe9f6b7a212d79900270fed9c9bad3620d96adc152501fca081e_0` | `{"req":{"urn:example:color:revision":{"version":2,"params":null}}}`                                                                                                             |
| C       | `d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7a_0` | `{"req":{"urn:example:color:revision":{"version":1,"params":null}},"ext":{"urn:example:color:revision":{"revision":0}}}`                                                         |
| D       | `2032d9508230bbe5b8eb7b3e1cccd9db4a4fc6ccd462c4a2b71f820864c45cca_0` | `{"sym":"ITEM","ext":{"urn:example:display:words":{"one":"item","many":"items"}}}`                                                                                               |
| M       | `aa53e365fda06d46075fe264b1b52ad25e927e92ab08fde1a87f31c1e8aaa731_0` | `{"req":null}`                                                                                                                                                                   |
| L       | `6e983e939820a9267f7ae63ac549577292781c5e1904e6c358205d5bee90a8a7_0` | None: legacy JSON; its extra `colorPayload` member has no processing meaning.                                                                                                    |
| X       | `2320c3ff826483010d41501fad1c766835e7d25fe7e3c74d2fcb2fade4ba1257_0` | `{"req":{"urn:example:color:revision":{"version":1,"params":null},"urn:example:color:unknown":{"version":1,"params":null}},"ext":{"urn:example:color:revision":{"revision":0}}}` |
| N       | `34495df365e76d8fa01596ca8348126e0c60cbb898c5162670a8e7d670ad0f3e_0` | `{"req":{"urn:example:color:no-overlay":{"version":1,"params":null}}}`                                                                                                           |

The actual deploy locking scripts are:

| Fixture | Script hex                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| U       | `00596d33a163726571a1781975726e3a6578616d706c653a636f6c6f723a756e6b6e6f776ea266706172616d73f66776657273696f6e017576a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                                                                                                                                                                                                                   |
| V       | `00596d34a163726571a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea266706172616d73f66776657273696f6e027576a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                                                                                                                                                                                                                 |
| C       | `00596d4c60a263657874a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea1687265766973696f6e0063726571a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea266706172616d73f66776657273696f6e0175ab76a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                                                                                                                     |
| D       | `00596d3fa263657874a1781975726e3a6578616d706c653a646973706c61793a776f726473a2636f6e65646974656d646d616e79656974656d736373796d644954454d7576a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                                                                                                                                                                                           |
| M       | `00596d06a163726571f67576a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                                                                                                                                                                                                                                                                                                             |
| L       | `0063036f726451126170706c69636174696f6e2f6273762d3230004ca37b2270223a226273762d3230222c226f70223a226465706c6f792b6d696e74222c22616d74223a2239222c22636f6c6f725061796c6f6164223a22613136333732363537316131373831393735373236653361363537383631366437303663363533613633366636633666373233613735366536623665366637373665613236363730363137323631366437336636363737363635373237333639366636653031227d6876a914fc63218003683dc3305d0644a52f73eb0802e5c188ac` |
| X       | `00596d4c8da263657874a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea1687265766973696f6e0063726571a2781975726e3a6578616d706c653a636f6c6f723a756e6b6e6f776ea266706172616d73f66776657273696f6e01781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea266706172616d73f66776657273696f6e0175ab76a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                           |
| N       | `00596d36a163726571a1781c75726e3a6578616d706c653a636f6c6f723a6e6f2d6f7665726c6179a266706172616d73f66776657273696f6e017576a914fc63218003683dc3305d0644a52f73eb0802e5c188ac`                                                                                                                                                                                                                                                                             |

### A.142. Unknown required profile

Use fixture U below. The deploy and nine units are valid under the base token rules and its current overlay answer is positive. This wallet does not implement its required profile.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQy",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance 5f0ebd014a0b9b4147d3e0da863a74634237eeaf6d62ef04339aa685092dd3f8v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQy",
  "status": "error",
  "code": 1,
  "description": "Required processing profile is unsupported"
}
```

Base admission does not justify a wallet balance. The operation fails without credited value, signatures or fallback to an ordinary basket. An unsupported-resource notice may be displayed separately.

### A.143. Known identifier with an unsupported version

Use fixture V. The wallet implements only version 1 of the example revision profile.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQz",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance a3e442c17e1fbe9f6b7a212d79900270fed9c9bad3620d96adc152501fca081ev0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQz",
  "status": "error",
  "code": 1,
  "description": "Required processing profile version is unsupported"
}
```

Recognizing the identifier does not authorize interpreting version 2 as version 1. Parameters and exact versions must be supported.

### A.144. Advisory data does not acquire authority

Use fixture D. No required profiles exist. All baseline checks pass, and Alice authorizes the ten-satoshi fee and this internal transfer.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQ0",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123,34,118,101,114,115,105,111,110,34,58,49,44,34,116,120,34,58,91,49,44,49,44,49,44,49,44,50,53,52,44,50,50,56,44,50,48,44,53,51,44,50,51,52,44,49,50,56,44,50,49,48,44,50,51,57,44,49,50,56,44,49,48,51,44,49,48,53,44,49,52,53,44,49,56,53,44,49,54,52,44,55,55,44,51,53,44,49,52,53,44,57,51,44,53,48,44,49,51,55,44,49,48,49,44,56,55,44,50,48,49,44,55,53,44,57,53,44,49,54,57,44,49,54,53,44,49,56,56,44,49,56,49,44,49,57,57,44,49,51,44,50,51,52,44,50,44,48,44,49,57,48,44,50,51,57,44,48,44,50,44,48,44,49,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,50,48,44,51,44,50,48,55,44,49,51,53,44,49,44,49,53,44,49,49,50,44,49,49,52,44,49,49,49,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,52,53,44,49,48,48,44,49,48,53,44,49,49,53,44,49,49,50,44,49,48,56,44,57,55,44,49,50,49,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,51,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,57,51,44,48,44,56,57,44,49,48,57,44,54,51,44,49,54,50,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,53,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,49,48,48,44,49,48,53,44,49,49,53,44,49,49,50,44,49,48,56,44,57,55,44,49,50,49,44,53,56,44,49,49,57,44,49,49,49,44,49,49,52,44,49,48,48,44,49,49,53,44,49,54,50,44,57,57,44,49,49,49,44,49,49,48,44,49,48,49,44,49,48,48,44,49,48,53,44,49,49,54,44,49,48,49,44,49,48,57,44,49,48,48,44,49,48,57,44,57,55,44,49,49,48,44,49,50,49,44,49,48,49,44,49,48,53,44,49,49,54,44,49,48,49,44,49,48,57,44,49,49,53,44,57,57,44,49,49,53,44,49,50,49,44,49,48,57,44,49,48,48,44,55,51,44,56,52,44,54,57,44,55,55,44,49,49,55,44,49,49,56,44,49,54,57,44,50,48,44,50,53,50,44,57,57,44,51,51,44,49,50,56,44,51,44,49,48,52,44,54,49,44,49,57,53,44,52,56,44,57,51,44,54,44,54,56,44,49,54,53,44,52,55,44,49,49,53,44,50,51,53,44,56,44,50,44,50,50,57,44,49,57,51,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,49,44,50,48,50,44,57,50,44,49,57,54,44,49,48,48,44,56,44,49,51,48,44,51,49,44,49,56,51,44,49,54,50,44,49,57,54,44,57,56,44,50,49,50,44,50,48,52,44,49,57,56,44,55,57,44,55,52,44,50,49,57,44,50,49,55,44,50,48,52,44,50,56,44,54,50,44,49,50,51,44,50,51,53,44,49,56,52,44,50,50,57,44,49,56,55,44,52,56,44,49,51,48,44,56,48,44,50,49,55,44,53,48,44,51,50,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,50,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,54,51,44,51,50,44,50,48,50,44,57,50,44,49,57,54,44,49,48,48,44,56,44,49,51,48,44,51,49,44,49,56,51,44,49,54,50,44,49,57,54,44,57,56,44,50,49,50,44,50,48,52,44,49,57,56,44,55,57,44,55,52,44,50,49,57,44,50,49,55,44,50,48,52,44,50,56,44,54,50,44,49,50,51,44,50,51,53,44,49,56,52,44,50,50,57,44,49,56,55,44,52,56,44,49,51,48,44,56,48,44,50,49,55,44,53,48,44,51,50,44,56,57,44,49,48,57,44,49,44,49,54,48,44,49,49,55,44,49,49,56,44,49,54,57,44,50,48,44,49,57,55,44,49,51,48,44,49,55,56,44,49,49,54,44,50,48,52,44,49,50,56,44,50,55,44,49,50,44,55,49,44,57,51,44,49,48,56,44,56,51,44,55,57,44,50,53,48,44,49,54,56,44,49,50,48,44,49,55,51,44,49,54,51,44,50,53,48,44,49,55,50,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,93,44,34,105,110,112,117,116,73,110,100,101,120,34,58,48,44,34,115,105,103,104,97,115,104,84,121,112,101,34,58,54,53,44,34,111,119,110,101,100,79,117,116,112,117,116,115,34,58,91,123,34,111,117,116,112,117,116,73,110,100,101,120,34,58,48,44,34,97,115,115,101,116,73,100,34,58,34,50,48,51,50,100,57,53,48,56,50,51,48,98,98,101,53,98,56,101,98,55,98,51,101,49,99,99,99,100,57,100,98,52,97,52,102,99,54,99,99,100,52,54,50,99,52,97,50,98,55,49,102,56,50,48,56,54,52,99,52,53,99,99,97,95,48,34,44,34,100,101,114,105,118,97,116,105,111,110,80,114,101,102,105,120,34,58,34,70,81,61,61,34,44,34,100,101,114,105,118,97,116,105,111,110,83,117,102,102,105,120,34,58,34,65,103,61,61,34,44,34,115,101,110,100,101,114,73,100,101,110,116,105,116,121,75,101,121,34,58,34,48,50,55,57,98,101,54,54,55,101,102,57,100,99,98,98,97,99,53,53,97,48,54,50,57,53,99,101,56,55,48,98,48,55,48,50,57,98,102,99,100,98,50,100,99,101,50,56,100,57,53,57,102,50,56,49,53,98,49,54,102,56,49,55,57,56,34,125,93,125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQ0",
  "status": "success",
  "result": {
    "signature": [48,69,2,33,0,212,118,42,3,231,91,15,99,218,234,194,67,181,141,3,3,172,206,153,227,33,69,156,115,14,66,38,33,189,75,249,248,2,32,83,233,214,146,31,4,76,18,106,69,27,20,17,76,150,252,10,179,122,32,108,109,182,1,148,213,220,134,139,106,34,19]
  }
}
```

The unknown display extension does not change nine-unit accounting or trigger code loading. The returned signature verifies against the full baseline source script. Display words neither prove identity nor authorize signing.

### A.145. Omitting requirements from a successor cannot remove them

Use fixture U. This transaction omits req from its proposed successor payload; its nine units and ordinary script are otherwise valid.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQ1",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123,34,118,101,114,115,105,111,110,34,58,49,44,34,116,120,34,58,91,49,44,49,44,49,44,49,44,50,50,51,44,55,57,44,49,57,50,44,49,55,54,44,52,54,44,53,51,44,49,49,44,49,50,56,44,52,57,44,49,56,53,44,56,57,44,49,54,51,44,49,55,44,49,48,57,44,50,51,48,44,49,56,51,44,53,56,44,49,55,57,44,49,54,53,44,51,44,49,52,48,44,50,53,44,50,49,51,44,54,48,44,53,57,44,55,54,44,50,50,57,44,50,52,56,44,49,56,55,44,49,57,55,44,49,51,51,44,52,44,50,44,48,44,49,57,48,44,50,51,57,44,48,44,50,44,48,44,49,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,50,48,44,51,44,50,48,52,44,49,51,53,44,49,44,49,53,44,49,49,50,44,49,49,52,44,49,49,49,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,52,53,44,49,49,55,44,49,49,48,44,49,48,55,44,49,49,48,44,49,49,49,44,49,49,57,44,49,49,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,51,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,56,49,44,48,44,56,57,44,49,48,57,44,53,49,44,49,54,49,44,57,57,44,49,49,52,44,49,48,49,44,49,49,51,44,49,54,49,44,49,50,48,44,50,53,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,55,44,49,49,48,44,49,48,55,44,49,49,48,44,49,49,49,44,49,49,57,44,49,49,48,44,49,54,50,44,49,48,50,44,49,49,50,44,57,55,44,49,49,52,44,57,55,44,49,48,57,44,49,49,53,44,50,52,54,44,49,48,51,44,49,49,56,44,49,48,49,44,49,49,52,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,49,56,44,49,54,57,44,50,48,44,50,53,50,44,57,57,44,51,51,44,49,50,56,44,51,44,49,48,52,44,54,49,44,49,57,53,44,52,56,44,57,51,44,54,44,54,56,44,49,54,53,44,52,55,44,49,49,53,44,50,51,53,44,56,44,50,44,50,50,57,44,49,57,51,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,49,44,50,52,56,44,50,49,49,44,52,53,44,57,44,49,51,51,44,49,54,54,44,49,53,52,44,53,49,44,52,44,50,51,57,44,57,56,44,49,48,57,44,49,55,53,44,50,51,56,44,53,53,44,54,54,44,57,57,44,49,49,54,44,53,56,44,49,51,52,44,50,49,56,44,50,50,52,44,50,49,49,44,55,49,44,54,53,44,49,53,53,44,49,49,44,55,52,44,49,44,49,56,57,44,49,52,44,57,53,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,50,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,54,51,44,51,50,44,50,52,56,44,50,49,49,44,52,53,44,57,44,49,51,51,44,49,54,54,44,49,53,52,44,53,49,44,52,44,50,51,57,44,57,56,44,49,48,57,44,49,55,53,44,50,51,56,44,53,53,44,54,54,44,57,57,44,49,49,54,44,53,56,44,49,51,52,44,50,49,56,44,50,50,52,44,50,49,49,44,55,49,44,54,53,44,49,53,53,44,49,49,44,55,52,44,49,44,49,56,57,44,49,52,44,57,53,44,56,57,44,49,48,57,44,49,44,49,54,48,44,49,49,55,44,49,49,56,44,49,54,57,44,50,48,44,49,48,51,44,55,54,44,49,52,57,44,50,51,54,44,49,54,48,44,52,57,44,49,55,57,44,49,52,53,44,50,49,52,44,55,51,44,54,50,44,50,51,51,44,54,51,44,50,48,55,44,49,54,48,44,50,49,44,50,51,48,44,49,49,57,44,57,56,44,49,56,57,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,93,44,34,105,110,112,117,116,73,110,100,101,120,34,58,48,44,34,115,105,103,104,97,115,104,84,121,112,101,34,58,54,53,44,34,111,119,110,101,100,79,117,116,112,117,116,115,34,58,91,123,34,111,117,116,112,117,116,73,110,100,101,120,34,58,48,44,34,97,115,115,101,116,73,100,34,58,34,53,102,48,101,98,100,48,49,52,97,48,98,57,98,52,49,52,55,100,51,101,48,100,97,56,54,51,97,55,52,54,51,52,50,51,55,101,101,97,102,54,100,54,50,101,102,48,52,51,51,57,97,97,54,56,53,48,57,50,100,100,51,102,56,95,48,34,44,34,100,101,114,105,118,97,116,105,111,110,80,114,101,102,105,120,34,58,34,70,81,61,61,34,44,34,100,101,114,105,118,97,116,105,111,110,83,117,102,102,105,120,34,58,34,65,103,61,61,34,44,34,115,101,110,100,101,114,73,100,101,110,116,105,116,121,75,101,121,34,58,34,48,50,55,57,98,101,54,54,55,101,102,57,100,99,98,98,97,99,53,53,97,48,54,50,57,53,99,101,56,55,48,98,48,55,48,50,57,98,102,99,100,98,50,100,99,101,50,56,100,57,53,57,102,50,56,49,53,98,49,54,102,56,49,55,57,56,34,125,93,125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQ1",
  "status": "error",
  "code": 1,
  "description": "Required processing profile is unsupported"
}
```

The wallet resolves the original deploy and still encounters the unsupported requirement. Inheritance does not depend on copying metadata into every output.

### A.146. A successor cannot replace the required map

Use fixture C and its supported revision profile. The proposed successor repeats an empty req map although the deploy requires the profile.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQ2",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123,34,118,101,114,115,105,111,110,34,58,49,44,34,116,120,34,58,91,49,44,49,44,49,44,49,44,49,52,52,44,49,49,51,44,49,55,50,44,49,56,54,44,54,54,44,50,54,44,57,52,44,49,50,51,44,49,49,56,44,51,50,44,51,52,44,50,49,50,44,56,52,44,49,53,56,44,54,44,50,50,48,44,49,52,50,44,49,57,57,44,56,57,44,50,51,50,44,49,54,57,44,49,52,54,44,49,55,53,44,49,51,52,44,57,50,44,49,57,53,44,49,56,48,44,50,48,57,44,49,53,44,51,57,44,49,53,48,44,49,55,50,44,50,44,48,44,49,57,48,44,50,51,57,44,48,44,50,44,48,44,49,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,50,49,44,51,44,50,48,54,44,49,51,53,44,49,44,49,54,44,49,49,50,44,49,49,52,44,49,49,49,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,52,53,44,57,57,44,49,49,49,44,49,49,48,44,49,49,54,44,49,49,52,44,57,55,44,57,57,44,49,49,54,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,51,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,50,56,44,48,44,56,57,44,49,48,57,44,55,54,44,57,54,44,49,54,50,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,48,44,57,57,44,49,49,52,44,49,48,49,44,49,49,51,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,50,44,49,48,50,44,49,49,50,44,57,55,44,49,49,52,44,57,55,44,49,48,57,44,49,49,53,44,50,52,54,44,49,48,51,44,49,49,56,44,49,48,49,44,49,49,52,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,53,50,44,57,57,44,51,51,44,49,50,56,44,51,44,49,48,52,44,54,49,44,49,57,53,44,52,56,44,57,51,44,54,44,54,56,44,49,54,53,44,52,55,44,49,49,53,44,50,51,53,44,56,44,50,44,50,50,57,44,49,57,51,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,49,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,50,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,49,51,44,51,50,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,56,57,44,49,48,57,44,53,48,44,49,54,50,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,57,57,44,49,49,52,44,49,48,49,44,49,49,51,44,49,54,48,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,52,54,44,49,49,54,44,50,51,55,44,49,56,57,44,49,51,50,44,49,56,51,44,49,57,55,44,56,55,44,49,54,52,44,50,49,56,44,50,49,50,44,50,56,44,48,44,49,48,55,44,50,49,54,44,49,52,56,44,55,51,44,50,52,51,44,49,54,50,44,50,49,56,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,93,44,34,105,110,112,117,116,73,110,100,101,120,34,58,48,44,34,115,105,103,104,97,115,104,84,121,112,101,34,58,54,53,44,34,111,119,110,101,100,79,117,116,112,117,116,115,34,58,91,123,34,111,117,116,112,117,116,73,110,100,101,120,34,58,48,44,34,97,115,115,101,116,73,100,34,58,34,100,55,52,56,101,99,54,101,57,98,53,101,48,50,54,54,52,99,56,48,102,57,57,54,50,101,51,56,53,56,55,52,53,54,100,54,55,52,97,102,51,57,49,102,101,54,101,51,54,102,49,49,50,54,97,98,50,52,100,57,98,101,55,97,95,48,34,44,34,100,101,114,105,118,97,116,105,111,110,80,114,101,102,105,120,34,58,34,70,81,61,61,34,44,34,100,101,114,105,118,97,116,105,111,110,83,117,102,102,105,120,34,58,34,65,103,61,61,34,44,34,115,101,110,100,101,114,73,100,101,110,116,105,116,121,75,101,121,34,58,34,48,50,55,57,98,101,54,54,55,101,102,57,100,99,98,98,97,99,53,53,97,48,54,50,57,53,99,101,56,55,48,98,48,55,48,50,57,98,102,99,100,98,50,100,99,101,50,56,100,57,53,57,102,50,56,49,53,98,49,54,102,56,49,55,57,56,34,125,93,125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQ2",
  "status": "error",
  "code": 1,
  "description": "Successor requirements differ from the deploy"
}
```

The repeated map conflicts with the immutable deploy descriptor. A user grant or a positive overlay response cannot authorize removing the requirement.

### A.147. Malformed critical metadata fails wallet processing

Use fixture M, whose base token prefix is valid but whose payload sets req to null.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQ3",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance aa53e365fda06d46075fe264b1b52ad25e927e92ab08fde1a87f31c1e8aaa731v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQ3",
  "status": "error",
  "code": 1,
  "description": "Malformed required processing profile map"
}
```

An indexer may admit the output under base rules. The wallet must reject the malformed requirement map instead of treating it as absent.

### A.148. Every required profile must be supported

Use fixture X. The wallet implements the revision profile but not the other declared requirement.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQ4",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance 2320c3ff826483010d41501fad1c766835e7d25fe7e3c74d2fcb2fade4ba1257v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQ4",
  "status": "error",
  "code": 1,
  "description": "Required processing profile is unsupported"
}
```

Partial support cannot satisfy the requirement set. No value is returned from the otherwise supported part.

### A.149. Authorize a contract update with unchanged token quantity

Use fixture C. Alice grants this application permission to advance the revision state for this resource and separately authorizes the ten-satoshi fee. The profile verifies source history and the exact transition from revision 0 to 1.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTQ5",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123,34,118,101,114,115,105,111,110,34,58,49,44,34,116,120,34,58,91,49,44,49,44,49,44,49,44,55,53,44,49,53,52,44,49,57,55,44,50,49,55,44,50,52,57,44,49,48,53,44,55,55,44,49,53,52,44,52,52,44,51,57,44,52,56,44,50,48,56,44,55,57,44,55,56,44,54,54,44,53,51,44,50,51,49,44,49,49,56,44,50,49,44,50,48,44,49,53,56,44,49,49,53,44,57,56,44,49,48,52,44,49,49,52,44,50,50,56,44,49,57,52,44,50,49,50,44,49,51,55,44,53,54,44,49,54,54,44,49,49,44,50,44,48,44,49,57,48,44,50,51,57,44,48,44,50,44,48,44,49,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,50,49,44,51,44,50,48,54,44,49,51,53,44,49,44,49,54,44,49,49,50,44,49,49,52,44,49,49,49,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,52,53,44,57,57,44,49,49,49,44,49,49,48,44,49,49,54,44,49,49,52,44,57,55,44,57,57,44,49,49,54,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,51,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,50,56,44,48,44,56,57,44,49,48,57,44,55,54,44,57,54,44,49,54,50,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,48,44,57,57,44,49,49,52,44,49,48,49,44,49,49,51,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,50,44,49,48,50,44,49,49,50,44,57,55,44,49,49,52,44,57,55,44,49,48,57,44,49,49,53,44,50,52,54,44,49,48,51,44,49,49,56,44,49,48,49,44,49,49,52,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,53,50,44,57,57,44,51,51,44,49,50,56,44,51,44,49,48,52,44,54,49,44,49,57,53,44,52,56,44,57,51,44,54,44,54,56,44,49,54,53,44,52,55,44,49,49,53,44,50,51,53,44,56,44,50,44,50,50,57,44,49,57,51,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,49,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,50,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,48,56,44,51,50,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,56,57,44,49,48,57,44,52,53,44,49,54,49,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,52,54,44,49,49,54,44,50,51,55,44,49,56,57,44,49,51,50,44,49,56,51,44,49,57,55,44,56,55,44,49,54,52,44,50,49,56,44,50,49,50,44,50,56,44,48,44,49,48,55,44,50,49,54,44,49,52,56,44,55,51,44,50,52,51,44,49,54,50,44,50,49,56,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,93,44,34,105,110,112,117,116,73,110,100,101,120,34,58,48,44,34,115,105,103,104,97,115,104,84,121,112,101,34,58,54,53,44,34,111,119,110,101,100,79,117,116,112,117,116,115,34,58,91,123,34,111,117,116,112,117,116,73,110,100,101,120,34,58,48,44,34,97,115,115,101,116,73,100,34,58,34,100,55,52,56,101,99,54,101,57,98,53,101,48,50,54,54,52,99,56,48,102,57,57,54,50,101,51,56,53,56,55,52,53,54,100,54,55,52,97,102,51,57,49,102,101,54,101,51,54,102,49,49,50,54,97,98,50,52,100,57,98,101,55,97,95,48,34,44,34,100,101,114,105,118,97,116,105,111,110,80,114,101,102,105,120,34,58,34,70,81,61,61,34,44,34,100,101,114,105,118,97,116,105,111,110,83,117,102,102,105,120,34,58,34,65,103,61,61,34,44,34,115,101,110,100,101,114,73,100,101,110,116,105,116,121,75,101,121,34,58,34,48,50,55,57,98,101,54,54,55,101,102,57,100,99,98,98,97,99,53,53,97,48,54,50,57,53,99,101,56,55,48,98,48,55,48,50,57,98,102,99,100,98,50,100,99,101,50,56,100,57,53,57,102,50,56,49,53,98,49,54,102,56,49,55,57,56,34,125,93,125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTQ5",
  "status": "success",
  "result": {
    "signature": [48,68,2,32,18,141,103,118,82,44,147,74,246,188,147,75,79,235,253,172,28,204,48,227,223,194,223,90,49,15,86,196,251,99,152,72,2,32,41,240,108,38,113,190,185,103,108,42,140,195,206,188,135,187,81,146,216,184,184,149,218,49,98,235,31,211,105,170,57,54]
  }
}
```

The output preserves nine units and a verified wallet signing role, but state changes still require resource authorization. The wallet computes the actual post-separator preimage and returns its valid signature. The resource remains restricted; signing does not imply automatic balance eligibility.

### A.150. A protocol grant does not authorize a resource update

Use the exact independently evaluated transaction from A.149. Alice has only an ordinary cryptographic protocol grant and denies the resource update.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTUw",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123,34,118,101,114,115,105,111,110,34,58,49,44,34,116,120,34,58,91,49,44,49,44,49,44,49,44,55,53,44,49,53,52,44,49,57,55,44,50,49,55,44,50,52,57,44,49,48,53,44,55,55,44,49,53,52,44,52,52,44,51,57,44,52,56,44,50,48,56,44,55,57,44,55,56,44,54,54,44,53,51,44,50,51,49,44,49,49,56,44,50,49,44,50,48,44,49,53,56,44,49,49,53,44,57,56,44,49,48,52,44,49,49,52,44,50,50,56,44,49,57,52,44,50,49,50,44,49,51,55,44,53,54,44,49,54,54,44,49,49,44,50,44,48,44,49,57,48,44,50,51,57,44,48,44,50,44,48,44,49,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,50,49,44,51,44,50,48,54,44,49,51,53,44,49,44,49,54,44,49,49,50,44,49,49,52,44,49,49,49,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,52,53,44,57,57,44,49,49,49,44,49,49,48,44,49,49,54,44,49,49,52,44,57,55,44,57,57,44,49,49,54,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,51,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,50,56,44,48,44,56,57,44,49,48,57,44,55,54,44,57,54,44,49,54,50,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,48,44,57,57,44,49,49,52,44,49,48,49,44,49,49,51,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,50,44,49,48,50,44,49,49,50,44,57,55,44,49,49,52,44,57,55,44,49,48,57,44,49,49,53,44,50,52,54,44,49,48,51,44,49,49,56,44,49,48,49,44,49,49,52,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,53,50,44,57,57,44,51,51,44,49,50,56,44,51,44,49,48,52,44,54,49,44,49,57,53,44,52,56,44,57,51,44,54,44,54,56,44,49,54,53,44,52,55,44,49,49,53,44,50,51,53,44,56,44,50,44,50,50,57,44,49,57,51,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,49,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,50,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,48,56,44,51,50,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,56,57,44,49,48,57,44,52,53,44,49,54,49,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,52,54,44,49,49,54,44,50,51,55,44,49,56,57,44,49,51,50,44,49,56,51,44,49,57,55,44,56,55,44,49,54,52,44,50,49,56,44,50,49,50,44,50,56,44,48,44,49,48,55,44,50,49,54,44,49,52,56,44,55,51,44,50,52,51,44,49,54,50,44,50,49,56,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,93,44,34,105,110,112,117,116,73,110,100,101,120,34,58,48,44,34,115,105,103,104,97,115,104,84,121,112,101,34,58,54,53,44,34,111,119,110,101,100,79,117,116,112,117,116,115,34,58,91,123,34,111,117,116,112,117,116,73,110,100,101,120,34,58,48,44,34,97,115,115,101,116,73,100,34,58,34,100,55,52,56,101,99,54,101,57,98,53,101,48,50,54,54,52,99,56,48,102,57,57,54,50,101,51,56,53,56,55,52,53,54,100,54,55,52,97,102,51,57,49,102,101,54,101,51,54,102,49,49,50,54,97,98,50,52,100,57,98,101,55,97,95,48,34,44,34,100,101,114,105,118,97,116,105,111,110,80,114,101,102,105,120,34,58,34,70,81,61,61,34,44,34,100,101,114,105,118,97,116,105,111,110,83,117,102,102,105,120,34,58,34,65,103,61,61,34,44,34,115,101,110,100,101,114,73,100,101,110,116,105,116,121,75,101,121,34,58,34,48,50,55,57,98,101,54,54,55,101,102,57,100,99,98,98,97,99,53,53,97,48,54,50,57,53,99,101,56,55,48,98,48,55,48,50,57,98,102,99,100,98,50,100,99,101,50,56,100,57,53,57,102,50,56,49,53,98,49,54,102,56,49,55,57,56,34,125,93,125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTUw",
  "status": "error",
  "code": 1,
  "description": "Contract resource update is not authorized"
}
```

The wallet verifies the transition but releases no signature. Zero token debit and a permitted fee are insufficient without authorization for this protected state change.

### A.151. Required state cannot be silently dropped

Use fixture C. The proposed successor omits ext entirely, although its inherited revision profile requires a successor revision.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTUx",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123,34,118,101,114,115,105,111,110,34,58,49,44,34,116,120,34,58,91,49,44,49,44,49,44,49,44,54,52,44,53,49,44,50,51,56,44,55,50,44,49,57,54,44,49,56,51,44,49,55,49,44,49,48,44,49,57,51,44,56,54,44,49,49,53,44,50,49,51,44,49,57,53,44,52,53,44,50,50,48,44,53,56,44,49,50,57,44,57,44,56,55,44,50,53,52,44,51,54,44,49,49,54,44,48,44,52,44,56,57,44,50,55,44,50,49,48,44,51,49,44,49,53,54,44,50,57,44,55,53,44,49,51,52,44,50,44,48,44,49,57,48,44,50,51,57,44,48,44,50,44,48,44,49,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,50,49,44,51,44,50,48,54,44,49,51,53,44,49,44,49,54,44,49,49,50,44,49,49,52,44,49,49,49,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,52,53,44,57,57,44,49,49,49,44,49,49,48,44,49,49,54,44,49,49,52,44,57,55,44,57,57,44,49,49,54,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,51,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,49,50,56,44,48,44,56,57,44,49,48,57,44,55,54,44,57,54,44,49,54,50,44,57,57,44,49,48,49,44,49,50,48,44,49,49,54,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,49,44,49,48,52,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,48,44,57,57,44,49,49,52,44,49,48,49,44,49,49,51,44,49,54,49,44,49,50,48,44,50,54,44,49,49,55,44,49,49,52,44,49,49,48,44,53,56,44,49,48,49,44,49,50,48,44,57,55,44,49,48,57,44,49,49,50,44,49,48,56,44,49,48,49,44,53,56,44,57,57,44,49,49,49,44,49,48,56,44,49,49,49,44,49,49,52,44,53,56,44,49,49,52,44,49,48,49,44,49,49,56,44,49,48,53,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,54,50,44,49,48,50,44,49,49,50,44,57,55,44,49,49,52,44,57,55,44,49,48,57,44,49,49,53,44,50,52,54,44,49,48,51,44,49,49,56,44,49,48,49,44,49,49,52,44,49,49,53,44,49,48,53,44,49,49,49,44,49,49,48,44,49,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,53,50,44,57,57,44,51,51,44,49,50,56,44,51,44,49,48,52,44,54,49,44,49,57,53,44,52,56,44,57,51,44,54,44,54,56,44,49,54,53,44,52,55,44,49,49,53,44,50,51,53,44,56,44,50,44,50,50,57,44,49,57,51,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,44,48,44,49,44,48,44,48,44,48,44,49,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,48,44,48,44,48,44,48,44,48,44,50,53,53,44,50,53,53,44,50,53,53,44,50,53,53,44,49,44,50,50,50,44,51,44,48,44,48,44,48,44,48,44,48,44,48,44,54,52,44,51,50,44,49,50,50,44,49,57,48,44,50,49,55,44,51,54,44,49,55,49,44,51,56,44,49,55,44,49,49,49,44,50,50,55,44,50,51,48,44,51,49,44,53,55,44,49,55,53,44,49,49,54,44,50,49,52,44,56,54,44,49,49,54,44,56,56,44,53,54,44,52,54,44,49,53,48,44,50,52,57,44,49,50,56,44,55,54,44,49,48,50,44,50,44,57,52,44,49,53,53,44,49,49,48,44,50,51,54,44,55,50,44,50,49,53,44,56,57,44,49,48,57,44,49,44,49,54,48,44,49,49,55,44,49,55,49,44,49,49,56,44,49,54,57,44,50,48,44,50,52,54,44,49,49,54,44,50,51,55,44,49,56,57,44,49,51,50,44,49,56,51,44,49,57,55,44,56,55,44,49,54,52,44,50,49,56,44,50,49,50,44,50,56,44,48,44,49,48,55,44,50,49,54,44,49,52,56,44,55,51,44,50,52,51,44,49,54,50,44,50,49,56,44,49,51,54,44,49,55,50,44,48,44,48,44,48,44,48,93,44,34,105,110,112,117,116,73,110,100,101,120,34,58,48,44,34,115,105,103,104,97,115,104,84,121,112,101,34,58,54,53,44,34,111,119,110,101,100,79,117,116,112,117,116,115,34,58,91,123,34,111,117,116,112,117,116,73,110,100,101,120,34,58,48,44,34,97,115,115,101,116,73,100,34,58,34,100,55,52,56,101,99,54,101,57,98,53,101,48,50,54,54,52,99,56,48,102,57,57,54,50,101,51,56,53,56,55,52,53,54,100,54,55,52,97,102,51,57,49,102,101,54,101,51,54,102,49,49,50,54,97,98,50,52,100,57,98,101,55,97,95,48,34,44,34,100,101,114,105,118,97,116,105,111,110,80,114,101,102,105,120,34,58,34,70,81,61,61,34,44,34,100,101,114,105,118,97,116,105,111,110,83,117,102,102,105,120,34,58,34,65,103,61,61,34,44,34,115,101,110,100,101,114,73,100,101,110,116,105,116,121,75,101,121,34,58,34,48,50,55,57,98,101,54,54,55,101,102,57,100,99,98,98,97,99,53,53,97,48,54,50,57,53,99,101,56,55,48,98,48,55,48,50,57,98,102,99,100,98,50,100,99,101,50,56,100,57,53,57,102,50,56,49,53,98,49,54,102,56,49,55,57,56,34,125,93,125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTUx",
  "status": "error",
  "code": 1,
  "description": "Required successor state is missing"
}
```

The profile rejects missing state; omission of the repeated req map remains permitted and is not the failure.

### A.152. Restricted resources remain discoverable

Use fixture C alone in this independently initialized wallet. It is admitted, unspent and unreserved; the application has inventory permission.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTUy",
  "call": "listOutputs",
  "args": {
    "basket": "p color assets",
    "include": "locking scripts",
    "includeTags": true
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTUy",
  "status": "success",
  "result": {
    "totalOutputs": 1,
    "outputs": [
      {
        "outpoint": "d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7a.0",
        "satoshis": 1000,
        "lockingScript": "00596d4c60a263657874a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea1687265766973696f6e0063726571a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea266706172616d73f66776657273696f6e0175ab76a914fc63218003683dc3305d0644a52f73eb0802e5c188ac",
        "spendable": false,
        "tags": [
          "color_state_restricted"
        ]
      }
    ]
  }
}
```

The actual outpoint and script are returned. The profile establishes a signing role and state-management capability, not eligibility for automatic fungible selection.

### A.153. Restricted resources are excluded from available balances

Use the same single-resource state as A.152, with balance-query permission.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTUz",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7av0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTUz",
  "status": "success",
  "result": {
    "totalOutputs": "0",
    "outputs": []
  }
}
```

Nine units remain discoverable in restricted custody, but none is available for automatic spending. No amount is lost, rounded or silently credited as unrestricted.

### A.154. Caller profile data cannot introduce a requirement or grant

Use fixture C. The request adds profileData for an identifier absent from its deploy requirements.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTU0",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 53, 44, 49, 53, 52, 44, 49, 57, 55, 44, 50, 49, 55, 44, 50, 52, 57, 44, 49, 48, 53, 44, 55, 55, 44, 49, 53, 52, 44, 52, 52, 44, 51, 57, 44, 52, 56, 44, 50, 48, 56, 44, 55, 57, 44, 55, 56, 44, 54, 54, 44, 53, 51, 44, 50, 51, 49, 44, 49, 49, 56, 44, 50, 49, 44, 50, 48, 44, 49, 53, 56, 44, 49, 49, 53, 44, 57, 56, 44, 49, 48, 52, 44, 49, 49, 52, 44, 50, 50, 56, 44, 49, 57, 52, 44, 50, 49, 50, 44, 49, 51, 55, 44, 53, 54, 44, 49, 54, 54, 44, 49, 49, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 49, 44, 51, 44, 50, 48, 54, 44, 49, 51, 53, 44, 49, 44, 49, 54, 44, 49, 49, 50, 44, 49, 49, 52, 44, 49, 49, 49, 44, 49, 48, 50, 44, 49, 48, 53, 44, 49, 48, 56, 44, 49, 48, 49, 44, 52, 53, 44, 57, 57, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 49, 54, 44, 49, 49, 52, 44, 57, 55, 44, 57, 57, 44, 49, 49, 54, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 50, 51, 50, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 48, 44, 56, 57, 44, 49, 48, 57, 44, 55, 54, 44, 57, 54, 44, 49, 54, 50, 44, 57, 57, 44, 49, 48, 49, 44, 49, 50, 48, 44, 49, 49, 54, 44, 49, 54, 49, 44, 49, 50, 48, 44, 50, 54, 44, 49, 49, 55, 44, 49, 49, 52, 44, 49, 49, 48, 44, 53, 56, 44, 49, 48, 49, 44, 49, 50, 48, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 50, 44, 49, 48, 56, 44, 49, 48, 49, 44, 53, 56, 44, 57, 57, 44, 49, 49, 49, 44, 49, 48, 56, 44, 49, 49, 49, 44, 49, 49, 52, 44, 53, 56, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 54, 49, 44, 49, 48, 52, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 48, 44, 57, 57, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 51, 44, 49, 54, 49, 44, 49, 50, 48, 44, 50, 54, 44, 49, 49, 55, 44, 49, 49, 52, 44, 49, 49, 48, 44, 53, 56, 44, 49, 48, 49, 44, 49, 50, 48, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 50, 44, 49, 48, 56, 44, 49, 48, 49, 44, 53, 56, 44, 57, 57, 44, 49, 49, 49, 44, 49, 48, 56, 44, 49, 49, 49, 44, 49, 49, 52, 44, 53, 56, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 54, 50, 44, 49, 48, 50, 44, 49, 49, 50, 44, 57, 55, 44, 49, 49, 52, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 53, 44, 50, 52, 54, 44, 49, 48, 51, 44, 49, 49, 56, 44, 49, 48, 49, 44, 49, 49, 52, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 44, 49, 49, 55, 44, 49, 55, 49, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 50, 53, 50, 44, 57, 57, 44, 51, 51, 44, 49, 50, 56, 44, 51, 44, 49, 48, 52, 44, 54, 49, 44, 49, 57, 53, 44, 52, 56, 44, 57, 51, 44, 54, 44, 54, 56, 44, 49, 54, 53, 44, 52, 55, 44, 49, 49, 53, 44, 50, 51, 53, 44, 56, 44, 50, 44, 50, 50, 57, 44, 49, 57, 51, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 50, 50, 44, 49, 57, 48, 44, 50, 49, 55, 44, 51, 54, 44, 49, 55, 49, 44, 51, 56, 44, 49, 55, 44, 49, 49, 49, 44, 50, 50, 55, 44, 50, 51, 48, 44, 51, 49, 44, 53, 55, 44, 49, 55, 53, 44, 49, 49, 54, 44, 50, 49, 52, 44, 56, 54, 44, 49, 49, 54, 44, 56, 56, 44, 53, 54, 44, 52, 54, 44, 49, 53, 48, 44, 50, 52, 57, 44, 49, 50, 56, 44, 55, 54, 44, 49, 48, 50, 44, 50, 44, 57, 52, 44, 49, 53, 53, 44, 49, 49, 48, 44, 50, 51, 54, 44, 55, 50, 44, 50, 49, 53, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 50, 50, 50, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 56, 44, 51, 50, 44, 49, 50, 50, 44, 49, 57, 48, 44, 50, 49, 55, 44, 51, 54, 44, 49, 55, 49, 44, 51, 56, 44, 49, 55, 44, 49, 49, 49, 44, 50, 50, 55, 44, 50, 51, 48, 44, 51, 49, 44, 53, 55, 44, 49, 55, 53, 44, 49, 49, 54, 44, 50, 49, 52, 44, 56, 54, 44, 49, 49, 54, 44, 56, 56, 44, 53, 54, 44, 52, 54, 44, 49, 53, 48, 44, 50, 52, 57, 44, 49, 50, 56, 44, 55, 54, 44, 49, 48, 50, 44, 50, 44, 57, 52, 44, 49, 53, 53, 44, 49, 49, 48, 44, 50, 51, 54, 44, 55, 50, 44, 50, 49, 53, 44, 56, 57, 44, 49, 48, 57, 44, 52, 53, 44, 49, 54, 49, 44, 57, 57, 44, 49, 48, 49, 44, 49, 50, 48, 44, 49, 49, 54, 44, 49, 54, 49, 44, 49, 50, 48, 44, 50, 54, 44, 49, 49, 55, 44, 49, 49, 52, 44, 49, 49, 48, 44, 53, 56, 44, 49, 48, 49, 44, 49, 50, 48, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 50, 44, 49, 48, 56, 44, 49, 48, 49, 44, 53, 56, 44, 57, 57, 44, 49, 49, 49, 44, 49, 48, 56, 44, 49, 49, 49, 44, 49, 49, 52, 44, 53, 56, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 54, 49, 44, 49, 48, 52, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 44, 49, 49, 55, 44, 49, 55, 49, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 50, 52, 54, 44, 49, 49, 54, 44, 50, 51, 55, 44, 49, 56, 57, 44, 49, 51, 50, 44, 49, 56, 51, 44, 49, 57, 55, 44, 56, 55, 44, 49, 54, 52, 44, 50, 49, 56, 44, 50, 49, 50, 44, 50, 56, 44, 48, 44, 49, 48, 55, 44, 50, 49, 54, 44, 49, 52, 56, 44, 55, 51, 44, 50, 52, 51, 44, 49, 54, 50, 44, 50, 49, 56, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 100, 55, 52, 56, 101, 99, 54, 101, 57, 98, 53, 101, 48, 50, 54, 54, 52, 99, 56, 48, 102, 57, 57, 54, 50, 101, 51, 56, 53, 56, 55, 52, 53, 54, 100, 54, 55, 52, 97, 102, 51, 57, 49, 102, 101, 54, 101, 51, 54, 102, 49, 49, 50, 54, 97, 98, 50, 52, 100, 57, 98, 101, 55, 97, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 70, 81, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 44, 34, 112, 114, 111, 102, 105, 108, 101, 68, 97, 116, 97, 34, 58, 123, 34, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 117, 110, 107, 110, 111, 119, 110, 34, 58, 123, 34, 100, 55, 52, 56, 101, 99, 54, 101, 57, 98, 53, 101, 48, 50, 54, 54, 52, 99, 56, 48, 102, 57, 57, 54, 50, 101, 51, 56, 53, 56, 55, 52, 53, 54, 100, 54, 55, 52, 97, 102, 51, 57, 49, 102, 101, 54, 101, 51, 54, 102, 49, 49, 50, 54, 97, 98, 50, 52, 100, 57, 98, 101, 55, 97, 95, 48, 34, 58, 123, 34, 103, 114, 97, 110, 116, 34, 58, 116, 114, 117, 101, 125, 125, 125, 125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTU0",
  "status": "error",
  "code": 1,
  "description": "Profile data names an undeclared profile"
}
```

The optional transport is not a policy-selection mechanism. Even a truthy grant member cannot establish user consent or install a handler.

### A.155. A no-overlay declaration is not a validation bypass

Use fixture N. This wallet has no implementation of the declared alternative-evidence profile.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTU1",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance 34495df365e76d8fa01596ca8348126e0c60cbb898c5162670a8e7d670ad0f3ev0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTU1",
  "status": "error",
  "code": 1,
  "description": "Required processing profile is unsupported"
}
```

The wallet does not interpret a name as permission to skip evidence. A later supported profile must define the replacement checks and preserve the common guarantees.

### A.156. Legacy JSON cannot declare processing profiles

Use fixture L. Its BRC-161 deploy includes an extra colorPayload JSON member, which is not a supported extension carrier. Its nine units, Bitcoin evidence and baseline overlay checks are valid; Alice allows the balance query.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTU2",
  "call": "listOutputs",
  "args": {
    "basket": "p color balance 6e983e939820a9267f7ae63ac549577292781c5e1904e6c358205d5bee90a8a7v0"
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTU2",
  "status": "success",
  "result": {
    "totalOutputs": "9",
    "outputs": []
  }
}
```

The extra JSON member is ignored, so no required profile was declared. Ordinary BRC-161 accounting and admission apply. Converting later outputs to binary cannot add profiles to this issuance; that functionality requires a new BRC-162 deployment. Conversely, encoding an asset from a binary deploy as JSON cannot remove its inherited requirements.

### A.157. Declared profile data is checked rather than trusted

Use fixture C. Alice has the resource and fee grants from A.149. The example profile permits exactly an expectedRevision integer in the asset-scoped profileData leaf and checks it against the authenticated successor state.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTU3",
  "call": "createSignature",
  "args": {
    "protocolID": [
      2,
      "p color issue 46413d3d 41673d3d"
    ],
    "keyID": "color",
    "counterparty": "anyone",
    "data": [123, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 49, 44, 34, 116, 120, 34, 58, 91, 49, 44, 49, 44, 49, 44, 49, 44, 55, 53, 44, 49, 53, 52, 44, 49, 57, 55, 44, 50, 49, 55, 44, 50, 52, 57, 44, 49, 48, 53, 44, 55, 55, 44, 49, 53, 52, 44, 52, 52, 44, 51, 57, 44, 52, 56, 44, 50, 48, 56, 44, 55, 57, 44, 55, 56, 44, 54, 54, 44, 53, 51, 44, 50, 51, 49, 44, 49, 49, 56, 44, 50, 49, 44, 50, 48, 44, 49, 53, 56, 44, 49, 49, 53, 44, 57, 56, 44, 49, 48, 52, 44, 49, 49, 52, 44, 50, 50, 56, 44, 49, 57, 52, 44, 50, 49, 50, 44, 49, 51, 55, 44, 53, 54, 44, 49, 54, 54, 44, 49, 49, 44, 50, 44, 48, 44, 49, 57, 48, 44, 50, 51, 57, 44, 48, 44, 50, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 49, 44, 51, 44, 50, 48, 54, 44, 49, 51, 53, 44, 49, 44, 49, 54, 44, 49, 49, 50, 44, 49, 49, 52, 44, 49, 49, 49, 44, 49, 48, 50, 44, 49, 48, 53, 44, 49, 48, 56, 44, 49, 48, 49, 44, 52, 53, 44, 57, 57, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 49, 54, 44, 49, 49, 52, 44, 57, 55, 44, 57, 57, 44, 49, 49, 54, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 50, 51, 50, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 48, 44, 56, 57, 44, 49, 48, 57, 44, 55, 54, 44, 57, 54, 44, 49, 54, 50, 44, 57, 57, 44, 49, 48, 49, 44, 49, 50, 48, 44, 49, 49, 54, 44, 49, 54, 49, 44, 49, 50, 48, 44, 50, 54, 44, 49, 49, 55, 44, 49, 49, 52, 44, 49, 49, 48, 44, 53, 56, 44, 49, 48, 49, 44, 49, 50, 48, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 50, 44, 49, 48, 56, 44, 49, 48, 49, 44, 53, 56, 44, 57, 57, 44, 49, 49, 49, 44, 49, 48, 56, 44, 49, 49, 49, 44, 49, 49, 52, 44, 53, 56, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 54, 49, 44, 49, 48, 52, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 48, 44, 57, 57, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 51, 44, 49, 54, 49, 44, 49, 50, 48, 44, 50, 54, 44, 49, 49, 55, 44, 49, 49, 52, 44, 49, 49, 48, 44, 53, 56, 44, 49, 48, 49, 44, 49, 50, 48, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 50, 44, 49, 48, 56, 44, 49, 48, 49, 44, 53, 56, 44, 57, 57, 44, 49, 49, 49, 44, 49, 48, 56, 44, 49, 49, 49, 44, 49, 49, 52, 44, 53, 56, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 54, 50, 44, 49, 48, 50, 44, 49, 49, 50, 44, 57, 55, 44, 49, 49, 52, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 53, 44, 50, 52, 54, 44, 49, 48, 51, 44, 49, 49, 56, 44, 49, 48, 49, 44, 49, 49, 52, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 44, 49, 49, 55, 44, 49, 55, 49, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 50, 53, 50, 44, 57, 57, 44, 51, 51, 44, 49, 50, 56, 44, 51, 44, 49, 48, 52, 44, 54, 49, 44, 49, 57, 53, 44, 52, 56, 44, 57, 51, 44, 54, 44, 54, 56, 44, 49, 54, 53, 44, 52, 55, 44, 49, 49, 53, 44, 50, 51, 53, 44, 56, 44, 50, 44, 50, 50, 57, 44, 49, 57, 51, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 50, 50, 44, 49, 57, 48, 44, 50, 49, 55, 44, 51, 54, 44, 49, 55, 49, 44, 51, 56, 44, 49, 55, 44, 49, 49, 49, 44, 50, 50, 55, 44, 50, 51, 48, 44, 51, 49, 44, 53, 55, 44, 49, 55, 53, 44, 49, 49, 54, 44, 50, 49, 52, 44, 56, 54, 44, 49, 49, 54, 44, 56, 56, 44, 53, 54, 44, 52, 54, 44, 49, 53, 48, 44, 50, 52, 57, 44, 49, 50, 56, 44, 55, 54, 44, 49, 48, 50, 44, 50, 44, 57, 52, 44, 49, 53, 53, 44, 49, 49, 48, 44, 50, 51, 54, 44, 55, 50, 44, 50, 49, 53, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 50, 50, 50, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 56, 44, 51, 50, 44, 49, 50, 50, 44, 49, 57, 48, 44, 50, 49, 55, 44, 51, 54, 44, 49, 55, 49, 44, 51, 56, 44, 49, 55, 44, 49, 49, 49, 44, 50, 50, 55, 44, 50, 51, 48, 44, 51, 49, 44, 53, 55, 44, 49, 55, 53, 44, 49, 49, 54, 44, 50, 49, 52, 44, 56, 54, 44, 49, 49, 54, 44, 56, 56, 44, 53, 54, 44, 52, 54, 44, 49, 53, 48, 44, 50, 52, 57, 44, 49, 50, 56, 44, 55, 54, 44, 49, 48, 50, 44, 50, 44, 57, 52, 44, 49, 53, 53, 44, 49, 49, 48, 44, 50, 51, 54, 44, 55, 50, 44, 50, 49, 53, 44, 56, 57, 44, 49, 48, 57, 44, 52, 53, 44, 49, 54, 49, 44, 57, 57, 44, 49, 48, 49, 44, 49, 50, 48, 44, 49, 49, 54, 44, 49, 54, 49, 44, 49, 50, 48, 44, 50, 54, 44, 49, 49, 55, 44, 49, 49, 52, 44, 49, 49, 48, 44, 53, 56, 44, 49, 48, 49, 44, 49, 50, 48, 44, 57, 55, 44, 49, 48, 57, 44, 49, 49, 50, 44, 49, 48, 56, 44, 49, 48, 49, 44, 53, 56, 44, 57, 57, 44, 49, 49, 49, 44, 49, 48, 56, 44, 49, 49, 49, 44, 49, 49, 52, 44, 53, 56, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 54, 49, 44, 49, 48, 52, 44, 49, 49, 52, 44, 49, 48, 49, 44, 49, 49, 56, 44, 49, 48, 53, 44, 49, 49, 53, 44, 49, 48, 53, 44, 49, 49, 49, 44, 49, 49, 48, 44, 49, 44, 49, 49, 55, 44, 49, 55, 49, 44, 49, 49, 56, 44, 49, 54, 57, 44, 50, 48, 44, 50, 52, 54, 44, 49, 49, 54, 44, 50, 51, 55, 44, 49, 56, 57, 44, 49, 51, 50, 44, 49, 56, 51, 44, 49, 57, 55, 44, 56, 55, 44, 49, 54, 52, 44, 50, 49, 56, 44, 50, 49, 50, 44, 50, 56, 44, 48, 44, 49, 48, 55, 44, 50, 49, 54, 44, 49, 52, 56, 44, 55, 51, 44, 50, 52, 51, 44, 49, 54, 50, 44, 50, 49, 56, 44, 49, 51, 54, 44, 49, 55, 50, 44, 48, 44, 48, 44, 48, 44, 48, 93, 44, 34, 105, 110, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 115, 105, 103, 104, 97, 115, 104, 84, 121, 112, 101, 34, 58, 54, 53, 44, 34, 111, 119, 110, 101, 100, 79, 117, 116, 112, 117, 116, 115, 34, 58, 91, 123, 34, 111, 117, 116, 112, 117, 116, 73, 110, 100, 101, 120, 34, 58, 48, 44, 34, 97, 115, 115, 101, 116, 73, 100, 34, 58, 34, 100, 55, 52, 56, 101, 99, 54, 101, 57, 98, 53, 101, 48, 50, 54, 54, 52, 99, 56, 48, 102, 57, 57, 54, 50, 101, 51, 56, 53, 56, 55, 52, 53, 54, 100, 54, 55, 52, 97, 102, 51, 57, 49, 102, 101, 54, 101, 51, 54, 102, 49, 49, 50, 54, 97, 98, 50, 52, 100, 57, 98, 101, 55, 97, 95, 48, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 80, 114, 101, 102, 105, 120, 34, 58, 34, 70, 81, 61, 61, 34, 44, 34, 100, 101, 114, 105, 118, 97, 116, 105, 111, 110, 83, 117, 102, 102, 105, 120, 34, 58, 34, 65, 103, 61, 61, 34, 44, 34, 115, 101, 110, 100, 101, 114, 73, 100, 101, 110, 116, 105, 116, 121, 75, 101, 121, 34, 58, 34, 48, 50, 55, 57, 98, 101, 54, 54, 55, 101, 102, 57, 100, 99, 98, 98, 97, 99, 53, 53, 97, 48, 54, 50, 57, 53, 99, 101, 56, 55, 48, 98, 48, 55, 48, 50, 57, 98, 102, 99, 100, 98, 50, 100, 99, 101, 50, 56, 100, 57, 53, 57, 102, 50, 56, 49, 53, 98, 49, 54, 102, 56, 49, 55, 57, 56, 34, 125, 93, 44, 34, 112, 114, 111, 102, 105, 108, 101, 68, 97, 116, 97, 34, 58, 123, 34, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 34, 58, 123, 34, 100, 55, 52, 56, 101, 99, 54, 101, 57, 98, 53, 101, 48, 50, 54, 54, 52, 99, 56, 48, 102, 57, 57, 54, 50, 101, 51, 56, 53, 56, 55, 52, 53, 54, 100, 54, 55, 52, 97, 102, 51, 57, 49, 102, 101, 54, 101, 51, 54, 102, 49, 49, 50, 54, 97, 98, 50, 52, 100, 57, 98, 101, 55, 97, 95, 48, 34, 58, 123, 34, 101, 120, 112, 101, 99, 116, 101, 100, 82, 101, 118, 105, 115, 105, 111, 110, 34, 58, 49, 125, 125, 125, 125]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTU3",
  "status": "success",
  "result": {
    "signature": [48, 68, 2, 32, 18, 141, 103, 118, 82, 44, 147, 74, 246, 188, 147, 75, 79, 235, 253, 172, 28, 204, 48, 227, 223, 194, 223, 90, 49, 15, 86, 196, 251, 99, 152, 72, 2, 32, 41, 240, 108, 38, 113, 190, 185, 103, 108, 42, 140, 195, 206, 188, 135, 187, 81, 146, 216, 184, 184, 149, 218, 49, 98, 235, 31, 211, 105, 170, 57, 54]
  }
}
```

The declared revision equals the validated output revision. The witness neither changes the signed transaction nor replaces source-history validation. A value of 2, duplicate member or additional field must fail the profile schema/transition check.

### A.158. Required profile data in receipt instructions

Receive the fully signed successor from A.149. The wallet verifies the complete input script, authenticated transition from revision 0 to 1, current admission of the received output, signing role and receipt authorization.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTU4",
  "call": "internalizeAction",
  "args": {
    "tx": [1, 1, 1, 1, 18, 161, 14, 180, 196, 17, 140, 68, 139, 59, 6, 186, 242, 244, 220, 197, 60, 46, 43, 152, 240, 209, 85, 18, 208, 70, 73, 121, 18, 104, 116, 250, 2, 0, 190, 239, 0, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 21, 3, 206, 135, 1, 16, 112, 114, 111, 102, 105, 108, 101, 45, 99, 111, 110, 116, 114, 97, 99, 116, 255, 255, 255, 255, 1, 232, 3, 0, 0, 0, 0, 0, 0, 128, 0, 89, 109, 76, 96, 162, 99, 101, 120, 116, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 161, 104, 114, 101, 118, 105, 115, 105, 111, 110, 0, 99, 114, 101, 113, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 162, 102, 112, 97, 114, 97, 109, 115, 246, 103, 118, 101, 114, 115, 105, 111, 110, 1, 117, 171, 118, 169, 20, 252, 99, 33, 128, 3, 104, 61, 195, 48, 93, 6, 68, 165, 47, 115, 235, 8, 2, 229, 193, 136, 172, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 122, 190, 217, 36, 171, 38, 17, 111, 227, 230, 31, 57, 175, 116, 214, 86, 116, 88, 56, 46, 150, 249, 128, 76, 102, 2, 94, 155, 110, 236, 72, 215, 0, 0, 0, 0, 106, 71, 48, 68, 2, 32, 18, 141, 103, 118, 82, 44, 147, 74, 246, 188, 147, 75, 79, 235, 253, 172, 28, 204, 48, 227, 223, 194, 223, 90, 49, 15, 86, 196, 251, 99, 152, 72, 2, 32, 41, 240, 108, 38, 113, 190, 185, 103, 108, 42, 140, 195, 206, 188, 135, 187, 81, 146, 216, 184, 184, 149, 218, 49, 98, 235, 31, 211, 105, 170, 57, 54, 65, 33, 2, 196, 8, 48, 116, 2, 150, 192, 67, 144, 66, 149, 220, 69, 85, 98, 12, 72, 32, 79, 237, 228, 124, 242, 173, 106, 214, 252, 155, 145, 2, 83, 228, 255, 255, 255, 255, 1, 222, 3, 0, 0, 0, 0, 0, 0, 108, 32, 122, 190, 217, 36, 171, 38, 17, 111, 227, 230, 31, 57, 175, 116, 214, 86, 116, 88, 56, 46, 150, 249, 128, 76, 102, 2, 94, 155, 110, 236, 72, 215, 89, 109, 45, 161, 99, 101, 120, 116, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 161, 104, 114, 101, 118, 105, 115, 105, 111, 110, 1, 117, 171, 118, 169, 20, 246, 116, 237, 189, 132, 183, 197, 87, 164, 218, 212, 28, 0, 107, 216, 148, 73, 243, 162, 218, 136, 172, 0, 0, 0, 0],
    "outputs": [
      {
        "outputIndex": 0,
        "protocol": "basket insertion",
        "insertionRemittance": {
          "basket": "p color d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7av0",
          "customInstructions": "{\"version\":1,\"assetId\":\"d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7a_0\",\"derivationPrefix\":\"FQ==\",\"derivationSuffix\":\"Ag==\",\"senderIdentityKey\":\"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"profileData\":{\"urn:example:color:revision\":{\"d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7a_0\":{\"expectedRevision\":1}}}}"
        }
      }
    ]
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTU4",
  "status": "success",
  "result": {
    "accepted": true
  }
}
```

The 372-byte instruction string remains within the existing 1000-byte limit. The known profile validates expectedRevision against the received state; it is not an override. The wallet records the nine-unit resource as restricted, keeps its authenticated successor derivation and credits no available fungible balance. Unknown profile identifiers or mismatched state must fail. No implicit overlay submission occurs.

### A.159. Required profile data in an action plan

Use fixture C. Alice grants the resource update and ten-satoshi fee from A.149. The application explicitly selects the restricted resource and will provide its unlocking script later.

An application originates the following request:

```json
{
  "type": "CWI",
  "isInvocation": true,
  "id": "Y29sb3ItMDAwMTU5",
  "call": "createAction",
  "args": {
    "description": "Advance the authorized resource revision",
    "inputBEEF": [2, 0, 190, 239, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 21, 3, 206, 135, 1, 16, 112, 114, 111, 102, 105, 108, 101, 45, 99, 111, 110, 116, 114, 97, 99, 116, 255, 255, 255, 255, 1, 232, 3, 0, 0, 0, 0, 0, 0, 128, 0, 89, 109, 76, 96, 162, 99, 101, 120, 116, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 161, 104, 114, 101, 118, 105, 115, 105, 111, 110, 0, 99, 114, 101, 113, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 162, 102, 112, 97, 114, 97, 109, 115, 246, 103, 118, 101, 114, 115, 105, 111, 110, 1, 117, 171, 118, 169, 20, 252, 99, 33, 128, 3, 104, 61, 195, 48, 93, 6, 68, 165, 47, 115, 235, 8, 2, 229, 193, 136, 172, 0, 0, 0, 0],
    "inputs": [
      {
        "outpoint": "d748ec6e9b5e02664c80f9962e38587456d674af391fe6e36f1126ab24d9be7a.0",
        "unlockingScriptLength": 108,
        "inputDescription": "Update resource revision zero to one"
      }
    ],
    "outputs": [
      {
        "lockingScript": "207abed924ab26116fe3e61f39af74d6567458382e96f9804c66025e9b6eec48d7596d2da163657874a1781a75726e3a6578616d706c653a636f6c6f723a7265766973696f6ea1687265766973696f6e0175ab76a914f674edbd84b7c557a4dad41c006bd89449f3a2da88ac",
        "satoshis": 990,
        "outputDescription": "Preserve the resource under revision one"
      }
    ],
    "labels": [
      "p color plan 0 7 7b2276657273696f6e223a312c22617373657473223a5b22643734386563366539623565303236363463383066393936326533383538373435366436373461663339316665366533366631313236616232346439626537615f30225d2c226f776e65644f",
      "p color plan 1 7 757470757473223a5b7b226f7574707574496e646578223a302c2261737365744964223a22643734386563366539623565303236363463383066393936326533383538373435366436373461663339316665366533366631313236616232346439626537",
      "p color plan 2 7 615f30222c2264657269766174696f6e507265666978223a2246513d3d222c2264657269766174696f6e537566666978223a2241673d3d222c2273656e6465724964656e746974794b6579223a2230323739626536363765663964636262616335356130",
      "p color plan 3 7 3632393563653837306230373032396266636462326463653238643935396632383135623136663831373938227d5d2c226f7065726174696f6e73223a5b7b2261737365744964223a226437343865633665396235653032363634633830663939363265",
      "p color plan 4 7 33383538373435366436373461663339316665366533366631313236616232346439626537615f30222c226f7065726174696f6e223a227472616e73666572227d5d2c22696e707574506f736974696f6e73223a5b5d2c226368616e6765506f73697469",
      "p color plan 5 7 6f6e73223a5b5d2c22736967686173685479706573223a5b5d2c2270726f66696c6544617461223a7b2275726e3a6578616d706c653a636f6c6f723a7265766973696f6e223a7b2264373438656336653962356530323636346338306639393632653338",
      "p color plan 6 7 3538373435366436373461663339316665366533366631313236616232346439626537615f30223a7b2265787065637465645265766973696f6e223a317d7d7d7d"
    ],
    "version": 1,
    "lockTime": 0,
    "options": {
      "signAndProcess": false,
      "noSend": true,
      "randomizeOutputs": false
    }
  }
}
```

The wallet returns:

```json
{
  "type": "CWI",
  "isInvocation": false,
  "id": "Y29sb3ItMDAwMTU5",
  "status": "success",
  "result": {
    "signableTransaction": {
      "tx": [1, 1, 1, 1, 75, 154, 197, 217, 249, 105, 77, 154, 44, 39, 48, 208, 79, 78, 66, 53, 231, 118, 21, 20, 158, 115, 98, 104, 114, 228, 194, 212, 137, 56, 166, 11, 2, 0, 190, 239, 0, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 21, 3, 206, 135, 1, 16, 112, 114, 111, 102, 105, 108, 101, 45, 99, 111, 110, 116, 114, 97, 99, 116, 255, 255, 255, 255, 1, 232, 3, 0, 0, 0, 0, 0, 0, 128, 0, 89, 109, 76, 96, 162, 99, 101, 120, 116, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 161, 104, 114, 101, 118, 105, 115, 105, 111, 110, 0, 99, 114, 101, 113, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 162, 102, 112, 97, 114, 97, 109, 115, 246, 103, 118, 101, 114, 115, 105, 111, 110, 1, 117, 171, 118, 169, 20, 252, 99, 33, 128, 3, 104, 61, 195, 48, 93, 6, 68, 165, 47, 115, 235, 8, 2, 229, 193, 136, 172, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 122, 190, 217, 36, 171, 38, 17, 111, 227, 230, 31, 57, 175, 116, 214, 86, 116, 88, 56, 46, 150, 249, 128, 76, 102, 2, 94, 155, 110, 236, 72, 215, 0, 0, 0, 0, 0, 255, 255, 255, 255, 1, 222, 3, 0, 0, 0, 0, 0, 0, 108, 32, 122, 190, 217, 36, 171, 38, 17, 111, 227, 230, 31, 57, 175, 116, 214, 86, 116, 88, 56, 46, 150, 249, 128, 76, 102, 2, 94, 155, 110, 236, 72, 215, 89, 109, 45, 161, 99, 101, 120, 116, 161, 120, 26, 117, 114, 110, 58, 101, 120, 97, 109, 112, 108, 101, 58, 99, 111, 108, 111, 114, 58, 114, 101, 118, 105, 115, 105, 111, 110, 161, 104, 114, 101, 118, 105, 115, 105, 111, 110, 1, 117, 171, 118, 169, 20, 246, 116, 237, 189, 132, 183, 197, 87, 164, 218, 212, 28, 0, 107, 216, 148, 73, 243, 162, 218, 136, 172, 0, 0, 0, 0],
      "reference": "cHJvZmlsZS0wMTU5"
    }
  }
}
```

The wallet reconstructs the plan, validates the profile evidence and successor state, preserves the requested position, and reserves the resource. Its explicit selection does not make it ordinary funding. The returned transaction is pending, with an empty input unlock and no spendable credit. Later signAction must revalidate the same requirements and actual unlocking script. The base transfer operation accounts for the nine units; profile authorization independently covers the state update.

## Appendix B — Exact transition and safety vectors

These vectors supplement Appendix A. Amounts are integer token units for one existing asset, with authenticated admitted inputs and individually valid encoded outputs. All non-token funding, scripts, source proofs and current topic checks pass unless a row says otherwise. A successful row requires exactly the listed operation set in its plan and consent to each positive quantity; an omitted or extra operation fails before signing. An invalid row fails before signing regardless of declared operations. An empty operation set does not authorize a token-bearing action without its exact `assets` entry.

### B.1. Mixed-encoding value accounting

`V`, `T`, `E`, `M` and `B` have the definitions in Transaction evidence and admission. `A` is the number of admitted authority inputs and outputs. `X/Y/Z` is the resulting `transferred/minted/burned` triple. Each row is a separate transaction; no value or authority carries between rows. `tr`, `mi`, `bu` and `at` abbreviate `transfer`, `mint`, `burn` and `authority-transfer` only within this table.

| Case                                      |                    V |   T |   E |   M |                    B | A in→out | X/Y/Z                    | Required operations or result                                                                        |
| ----------------------------------------- | -------------------: | --: | --: | --: | -------------------: | -------- | ------------------------ | ---------------------------------------------------------------------------------------------------- |
| B01 exact binary transfer                 |                  100 |   0 |   0 |   0 |                  100 | 0→0      | 100/0/0                  | tr                                                                                                   |
| B02 implicit binary burn                  |                  100 |   0 |   0 |   0 |                   90 | 0→0      | 90/0/10                  | tr, bu                                                                                               |
| B03 no-authority binary excess            |                  100 |   0 |   0 |   0 |                  101 | 0→0      | —                        | Reject; binary outputs lack coverage even though inputs would be destroyed by an invalid transition. |
| B04 legacy plus binary transfer           |                  100 |  40 |   0 |   0 |                   60 | 0→0      | 100/0/0                  | tr                                                                                                   |
| B05 mixed over-output                     |                  100 |  70 |   0 |   0 |                   40 | 0→0      | —                        | Reject; remaining value covers only 30 binary units.                                                 |
| B06 explicit plus implicit burn           |                  100 |  20 |  10 |   0 |                   60 | 0→0      | 80/0/20                  | tr, bu                                                                                               |
| B07 explicit burn exhausts remainder      |                  100 |  20 |  10 |   0 |                   80 | 0→0      | —                        | Reject; binary amount exceeds the remaining 70.                                                      |
| B08 authority mints binary only           |                    0 |   0 |   0 |   0 |                  250 | 1→1      | 0/250/0                  | mi, at                                                                                               |
| B09 authority with value burn             |                  100 |   0 |   0 |   0 |                   90 | 1→1      | 90/0/10                  | tr, bu, at; authority does not erase the burn.                                                       |
| B10 authority with exact value coverage   |                  100 |   0 |   0 |   0 |                  100 | 1→1      | 100/0/0                  | tr, at; `mint` is extra and fails.                                                                   |
| B11 authority with binary excess          |                  100 |   0 |   0 |   0 |                  140 | 1→1      | 100/40/0                 | tr, mi, at                                                                                           |
| B12 mixed, simultaneous mint and burn     |                  100 |  40 |  10 |   0 |                   70 | 1→1      | 90/20/10                 | tr, mi, bu, at; net supply rises 10.                                                                 |
| B13 mixed, remaining value burned         |                  100 |  40 |  10 |   0 |                   30 | 1→1      | 70/0/30                  | tr, bu, at                                                                                           |
| B14 legacy mint plus mixed transfer       |                  100 |  40 |  10 |  30 |                   50 | 1→1      | 90/30/10                 | tr, mi, bu, at                                                                                       |
| B15 equal legacy mint and burn            |                  100 |   0 | 100 | 100 |                    0 | 1→0      | 0/100/100                | mi, bu, authority-end; net zero does not cancel either consent.                                      |
| B16 authority cannot fund legacy transfer |                    0 |   1 |   0 | 100 |                    0 | 1→1      | —                        | Reject; `T + E > V` despite authority.                                                               |
| B17 legacy mint only                      |                    0 |   0 |   0 | 100 |                    0 | 1→1      | 0/100/0                  | mi, at; no `transfer`.                                                                               |
| B18 legacy transfer plus binary mint      |                  100 | 100 |   0 |   0 |                  100 | 1→1      | 100/100/0                | tr, mi, at; the same value input cannot fund both outputs.                                           |
| B19 authority-free legacy mint            |                    0 |   0 |   0 |   1 |                    0 | 0→0      | —                        | Reject; `mint` requires an admitted authority input.                                                 |
| B20 wide aggregate                        | 36893488147419103230 |   0 |   0 |   0 | 36893488147419103230 | 0→0      | 36893488147419103230/0/0 | tr; two maximum-uint64 inputs and outputs, summed exactly without uint64 overflow.                   |

For B20 each input and output amount is 18446744073709551615; the table totals deliberately exceed uint64. A single encoded output above uint64 remains invalid. If B16's legacy mint is independently admissible under BRC-161, that does not make its legacy transfer valid: the wallet still rejects the action because the intended transition is not wholly admitted.

### B.2. Authority and operation-set boundaries

All rows have a single existing asset, no value amounts, valid authority scripts and separately verified controller consent. The operation is in addition to any positive value operation from B.1; count changes never turn authority into numeric value.

| Case                      | Admitted authority inputs | Authority outputs | Required result                                             |
| ------------------------- | ------------------------: | ----------------: | ----------------------------------------------------------- |
| B21 end one               |                         1 |                 0 | `authority-end`                                             |
| B22 transfer one          |                         1 |                 1 | `authority-transfer`, even if the controller changes        |
| B23 split one             |                         1 |                 2 | `authority-split`                                           |
| B24 end several           |                         2 |                 0 | `authority-end`                                             |
| B25 combine               |                         2 |                 1 | `authority-combine`                                         |
| B26 same count            |                         2 |                 2 | `authority-transfer`, including swaps of controllers        |
| B27 net split             |                         2 |                 3 | `authority-split`                                           |
| B28 unauthorized creation |                         0 |                 1 | Reject; no authority input                                  |
| B29 absent capability     |                         0 |                 0 | No authority operation; an asserted one is extra and fails. |

A fixed or authority deploy is instead its new asset's sole deploy operation. The BRC-162 deploy must occupy output zero. Its genesis amount or authority is not charged as an existing-asset transfer or mint. A BRC-161 deploy follows that encoding's own allowed position. A binary prefix takes precedence over an embedded legacy inscription; its legacy text cannot add a second amount or operation. Assets are evaluated independently: a surplus of asset A cannot cover a deficit of asset B.

### B.3. Signature commitment and provider boundaries

The signature rows assume consensus-valid source scripts and otherwise authorized unilateral disposition. `nIn` and `nOut` are transaction input and output counts. Both direct signing and managed-action signing MUST produce the same accept/reject decision for the stated context. A rejection releases no signature or pending signature capability.

| Case                                     | Flag   | Signing input | nIn/nOut | Required result                                                                                                                                   |
| ---------------------------------------- | ------ | ------------: | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| B30 BIP143 SINGLE matched                | `0x43` |             0 | 1/1      | May sign; commits output zero after ordinary validation.                                                                                          |
| B31 BIP143 SINGLE absent                 | `0x43` |             1 | 2/1      | Reject; no corresponding output, even if that digest algorithm uses zero `hashOutputs`.                                                           |
| B32 BIP143 SINGLE/ANYONECANPAY absent    | `0xc3` |             1 | 2/1      | Reject; ANYONECANPAY does not cure the missing output.                                                                                            |
| B33 Chronicle SINGLE matched             | `0x63` |             0 | 1/1      | May sign using the original transaction digest algorithm, not BIP143 fields.                                                                      |
| B34 Chronicle SINGLE absent              | `0x63` |             1 | 2/1      | Reject; the original algorithm's missing-output result is the constant uint256 value 1.                                                           |
| B35 Chronicle SINGLE/ANYONECANPAY absent | `0xe3` |             1 | 2/1      | Reject for the same reason; no outpoint or output is committed by the degenerate digest.                                                          |
| B36 NONE with no outputs committed       | `0x42` |             0 | 1/1      | May sign only if its actual unilateral consequences or a verified safeguard satisfy authorization; the output shown in a subject is not promised. |
| B37 ALL/ANYONECANPAY conditional swap    | `0xc1` |             0 | 2/2      | Reject when a named foreign input is required consideration but uncommitted and no independently verified remedy applies.                         |
| B38 ALL/ANYONECANPAY with remedy         | `0xc1` |             0 | 2/2      | May sign only after the wallet verifies an applicable remedy under the asset system's policy; the remedy is outside this BRC.                     |

For B31–B35 the subject and source may otherwise be valid; missing output coverage alone triggers rejection. The actual signed message is computed from the selected consensus algorithm, never from a caller-supplied digest. SIGHASH\_SINGLE's constant-one result is a consensus property, not a permissible wallet signature vector.

| Case                               | Evidence or policy condition                                                                              | Required result                                                                                                                                                                       |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| B39 no caller hint                 | Authenticated token source with no `inputTopics` member                                                   | Derive asset, topic and configured provider from the source; continue only if current admission passes.                                                                               |
| B40 caller topic hint              | Otherwise valid plan or signature envelope contains `inputTopics`                                         | Reject as an unknown version-1 member; do not let it select a topic.                                                                                                                  |
| B41 differing wallet policies      | Provider P admits the source; P is trusted by wallet A but wallet B requires other evidence               | A may proceed under its configuration; B fails closed until its own configured rule is satisfied. Neither wallet can deem the other's policy authoritative.                           |
| B42 issuer convention mismatch     | Source is admitted by one wallet, but intended counterparty requires a different asset-network convention | Do not promise counterparty acceptance; apply the wallet's asset and counterparty policy before release.                                                                              |
| B43 provider disagrees or is stale | Required current evidence is insufficient under this wallet's configuration                               | Reject before signature or broadcast; an old proof cannot substitute for current spendability.                                                                                        |
| B44 delayed actor                  | A later untrusted participant omits a required signature or changes an uncommitted output                 | No loss beyond the releasing user's unconditional authorized disposition, or a verified system-specific remedy must cover the conditional loss; otherwise reject the initial release. |
| B45 unrelated controller           | Alice releases a valid signature for her input; Bob's separately controlled input remains unsigned        | Alice's signature cannot spend Bob's input or invalidate Bob's independently admitted asset.                                                                                          |

These cases set wallet safety and evidence boundaries. Provider choice, facilitator functions, negotiation, participation authorization, acceptance conventions and remedies remain choices of the applicable asset ecosystem, issuer, wallet, application and users, rather than a universal rule imposed by this BRC.

## Appendix C — Attested and protected-chain conformance

### C.0. Scope and signature vectors

These cases use an authenticated binary deploy with required profile `https://brc.dev/207/attested`, version 1, and the stated parameters. All unstated Bitcoin, script, custody, consent and companion-profile checks succeed. The graph cases describe independently established fixture facts, not claims about live TXIDs. They supplement the baseline wire examples in Appendix A. The signature-only vector below does not provide deployment, transaction or SPV evidence and cannot by itself justify token acceptance.

The public test identity private integer is 5555. Never use it for funds.

| Item                       | Exact value                                                          |
| -------------------------- | -------------------------------------------------------------------- |
| Signer identity            | `02798b81951a6a8c7ef8beda09b06a23031d7efaf37b663265e0188ab378124046` |
| BRC-43 invoice             | `2-color admission attestation-1`                                    |
| BRC-42 HMAC tweak          | `6ef21748a4f6f5034842184e25f68e8df8663e036622ad9b3d061c6dd81ea93b`   |
| Derived public signing key | `033520aaa77b6914019796e974d1737acc890c5283c0921ddcfc2d5c815db8fb90` |
| SHA-256 message digest     | `9f61b417ec979c3c057313fe56f3c6056d2962b6bceaaa8272377bb9a80d8f9d`   |

The exact message, with no newline, is:

```
1color-admit:v1:tm_color_c7d0f61946bc8bde6c01219c67bb99cbf2f89a39bcaea9c2ecf67c54224edb4f_0:05fabadb4a03eb7d5e54713824a483161a82ecc7061b124e99a13e9778131931:0,2
```

Its JSON attestation is:

```json
{
  "txid": "05fabadb4a03eb7d5e54713824a483161a82ecc7061b124e99a13e9778131931",
  "outputs": [
    0,
    2
  ],
  "signer": "02798b81951a6a8c7ef8beda09b06a23031d7efaf37b663265e0188ab378124046",
  "signature": "3045022100d1f48fc13a1ffd18196bcb6166aff936b8dc6cb7b0866fe9226ef1db89fb06be02203eff5870ae5215047d1d624733b29f563d5037660ce5c4ed0ce4ac52cc56758a"
}
```

The following high-S encoding is equally valid for the same message and key:

```
3046022100d1f48fc13a1ffd18196bcb6166aff936b8dc6cb7b0866fe9226ef1db89fb06be022100c100a78f51adeafb82e29db8cc4d60a87d5ea580a262db4eb2edb23a03dfcbb7
```

Both verify with the derived child. Neither may be verified against the raw identity key. Reordering output indices, removing index 2, changing the topic, changing key ID to `2`, or adding a newline fails. Parsing rejects an unsorted output array even if a caller separately signs that noncanonical spelling. BRC-175's retained raw-key negative vector must fail this construction.

### C.1. Deployment, authority and complete-graph decisions

Let the user's selected BRC-189 identities be P and Q. R is a valid identity absent from that list. X and Y are distinct frontier outpoints of one asset; `P(X)` means a valid default attestation from P for X. Every case starts fresh.

| Case                              | Independently established condition                                                           | Required result                                                                                                                                          |
| --------------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| C01 default                       | `params:{}`, `P(X)`, no current overlay connectivity                                          | May accept under the user's offline policy; no live lookup is required.                                                                                  |
| C02 opt-in absent                 | Same evidence, deploy has no required profile                                                 | Baseline current admission remains required; a receipt absent from its overlay fails.                                                                    |
| C03 inherited declaration         | Later output omits `req`; deploy selects the profile                                          | Apply the immutable deploy policy.                                                                                                                       |
| C04 substituted declaration       | Later output adds the profile to an undeclared asset, or changes its mode                     | Reject; no downstream opt-in or policy substitution.                                                                                                     |
| C05 unsupported schema            | Unknown version, null params, unknown parameter, own `ext`, or malformed identity key         | Reject before signing or balance mutation.                                                                                                               |
| C06 distributed any               | `any`, `P(X)` and `Q(Y)`                                                                      | Both anchors covered; same signer is not required.                                                                                                       |
| C07 missing any                   | `any`, `P(X)` and only `R(Y)`                                                                 | Reject: Y has no locally trusted coverage.                                                                                                               |
| C08 empty list                    | `any`, `same` or `all`, no selected identities                                                | Reject; unanimity over an empty set is not acceptance.                                                                                                   |
| C09 same fails                    | `same`, `P(X)` and `Q(Y)`                                                                     | Reject: intersection across the complete frontier is empty.                                                                                              |
| C10 same succeeds                 | `same`, P covers X and Y, Q also covers X                                                     | Accept coverage; P is the common signer. Q's incomplete coverage does not defeat it.                                                                     |
| C11 all fails                     | `all`, P covers X and Y, Q covers only X                                                      | Reject: Q(Y) is missing.                                                                                                                                 |
| C12 all succeeds                  | `all`, P and Q each cover X and Y                                                             | Accept coverage; weights and certificate `trustLevel` are irrelevant.                                                                                    |
| C13 fixed identity                | `identity`, `identityKey:R`, R covers X and Y                                                 | Accept coverage even with an empty local list; no hidden membership requirement.                                                                         |
| C14 wrong fixed key               | `identityKey:R`, only P and Q cover the frontier                                              | Reject despite their local trust.                                                                                                                        |
| C15 no threshold inflation        | Two copies of P(X), no Q(X), `all`                                                            | Reject; signatures are deduplicated by identity/outpoint.                                                                                                |
| C16 concurrent trust change       | Remove P while an `any` authorization relying only on P is being committed                    | Reevaluate against a coherent current snapshot; no stale release/credit.                                                                                 |
| C17 later trust loss              | Remove P after an offline payment was accepted                                                | Restrict affected value for future decisions, retain history/exposure; no claim of retroactive signature cancellation.                                   |
| C18 immutable fixed trust         | R removed from the local list after acceptance under `identityKey:R`                          | Membership removal is irrelevant to this mode; user may still decline further use of the asset.                                                          |
| C19 diamond graph                 | Two valid branches consume different outputs of one shared ancestor                           | Validate/memoize that ancestor once; do not reject merely because it is revisited.                                                                       |
| C20 competing branches            | Two distinct transactions consume the same source outpoint                                    | Reject the conflicting graph.                                                                                                                            |
| C21 omitted branch                | An input or authority branch is missing, although visible quantities seem sufficient          | Reject; apparent numerical sufficiency cannot replace complete coverage.                                                                                 |
| C22 mined only                    | An unanchored token parent has a valid Bitcoin proof                                          | Token coverage fails; mined does not mean admitted.                                                                                                      |
| C23 attested only                 | All token branches have attestations, but required Bitcoin source/SPV evidence is missing     | Reject; attestation does not prove Bitcoin validity.                                                                                                     |
| C24 partial output list           | Attestation covers output 0; the graph consumes output 2                                      | Obtain separate qualifying coverage or validate its full ancestry; never count output 0's signature as output 2 coverage. A known rejection still fails. |
| C25 no quantity bypass            | Anchored inputs total 20 units, unsigned-authority-free descendant outputs total 21           | Reject the transition despite valid anchor signatures.                                                                                                   |
| C26 authority branch              | Mint transition has a separate authority ancestor                                             | Validate that branch and authority operation/consent, not just value ancestry.                                                                           |
| C27 accepted source consumed here | An anchor is spent by its exact validated descendant in the supplied graph                    | Normal ancestry; do not mistake it for an external conflict.                                                                                             |
| C28 known conflicting spend       | Independent verified evidence shows another transaction consumed a required outpoint          | Reject/reconcile affected descendants; cannot choose a favorable signer to hide it.                                                                      |
| C29 newly issued                  | Authorized ISSUE plan uses its empty evidence leaf                                            | May construct/sign; cannot credit or use it as an anchor until completed deploy attestation coverage exists.                                             |
| C30 deployment receipt            | Receipt uses ISSUE derivation tuple but resolved-ID evidence                                  | Preserve the original key; authenticate deploy and assign final basket. No transfer may claim ISSUE to omit history.                                     |
| C31 multi-asset swap              | A uses `any`, B uses `identity`, C uses baseline admission, plus satoshis                     | Independently validate all three policies and DSAP; disclose each leg and offline risk. A's coverage does not validate B or C.                           |
| C32 resource composition          | A is attested; separately deployed B selects BRC-209                                          | May compose under their independent rules. Declaring both modes for A itself fails.                                                                      |
| C33 incomplete signatures         | Foreign unlocking script remains outstanding                                                  | Pending two-phase action only; no completed receipt or available prospective credit.                                                                     |
| C34 non-final auction             | Fully signed subject still consensus-non-final                                                | Apply processor-coordination rules; no completed receipt. Offline attestation cannot waive them.                                                         |
| C35 companion requirements        | A selected companion needs identity or state proof absent from the bundle                     | Reject; default admission attestations do not silently discharge other requirements.                                                                     |
| C36 duplicate/malformed fields    | Duplicate JSON key, unknown carrier key, bad DER, invalid point or noncanonical TXID          | Reject before signature, persistence of credit or external submission.                                                                                   |
| C37 resource bounds               | Evidence exceeds the applicable 16 MiB receipt ceiling or declared host work limit            | Explicit failure; no truncation or partial balance. The 1000-byte baseline still applies to undeclared receipts.                                         |
| C38 alternate evidence            | `evidenceProfile` names an exact supported companion that replaces signature and trust checks | Use that companion's carrier and declared rules; no default-signature fallback.                                                                          |
| C39 invalid delegation            | Missing companion, cycle, unsupported version or incompatible replacements                    | Reject. A URI is not authorization to fetch/execute code.                                                                                                |

### C.2. Offline value and protected lifecycle decisions

| Case                            | Condition                                                                                  | Required result                                                                                                                                                |
| ------------------------------- | ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| C40 accepted offline            | Complete final graph, custody and risk authorization pass, no actual overlay admission yet | Persist receipt exactly once; available unreserved units may count, with `color_offline` and accurate deferred-settlement presentation. No implicit broadcast. |
| C41 reserve and extend          | Select that output into a signed child                                                     | Reserve parent; prospective child cannot cause a duplicate available balance. Forward all required ancestor, submission and lifecycle data.                    |
| C42 missing settlement data     | Companion requires off-chain values not carried or held authoritatively                    | Reject acceptance rather than depend on an unavailable sender for eventual settlement.                                                                         |
| C43 protected never             | Received graph includes a signed `never` lifecycle statement from its responsible wallet   | Verify it and apply counterparty policy; show permanent sender disposition, not Bitcoin finality or freedom from third-party double-spends.                    |
| C44 missing lifecycle           | Known protected root has no authenticated lifecycle object                                 | Fail protected delivery; version-1 BRC-175 bundle or display note cannot assert `never`.                                                                       |
| C45 forged or changed lifecycle | Root/anchor bytes do not match, signature is wrong, or a forwarded deadline is edited      | Reject. Child creators cannot reset a relative timer or rewrite an ancestor's policy.                                                                          |
| C46 finite mixed roots          | Chain depends on one timestamp root and one height root, neither accepted                  | Evaluate both predicates in their own units; expiration of either blocks affected descendants.                                                                 |
| C47 restart after release       | Local batch lease expires or sender loses its application                                  | Recover durable bytes/reservations/exposure. Never free usable signed inputs from lease expiry.                                                                |
| C48 explicit batch send         | `sendWith` names a retained leaf                                                           | Validate authorized ancestor closure before submission; process parents first or as an accepted package. Preserve ordinary per-requested-ID results.           |
| C49 known bad closure           | Missing parent or a finite root has expired before submission                              | Fail before publishing a ready subset. No implied all-or-nothing network guarantee after a valid attempt begins.                                               |
| C50 partial settlement          | Root accepted, a later ancestor or tip refused                                             | Cancel reclaim only for independently accepted roots; keep per-TXID outcomes and affected credits/reservations accurate. No rollback of published members.     |
| C51 uncertain result            | Submission response or receiver ack is lost                                                | Retain exposure; reconcile exact TXIDs and retry idempotently. Do not create a replacement payment.                                                            |
| C52 negative ack on never       | Receiver declines a released `never` payment                                               | Keep it permanently sent/committed; no reclamation or generic input reuse.                                                                                     |
| C53 delayed finite send         | Queued batch reaches deadline before first processing acceptance                           | Queueing did not satisfy expiry; reconcile and apply finite-root reclaim rules.                                                                                |
| C54 settled graph               | Required ancestors, every asset leg and actual current admission are verified              | Remove `color_offline` for eligible settled outputs; retain other restrictions/reservations.                                                                   |
| C55 final refusal               | Offline child or ancestor loses to a verified conflicting spend                            | Remove unavailable credit, mark dependent failures, retain evidence and released exposure; accounting correction does not recover delivered goods.             |
| C56 no authenticated age        | Wallet first saw an untimed default attestation yesterday                                  | May enforce a retention policy; cannot claim the attester signed yesterday. Authenticated-age rules need a declared replacement.                               |

### C.3. Capability and balance wire examples

The wallet has enabled compatible BRC-205 version metadata, implements the optional default profile and both BRC-175 bundle versions, and supports BRC-177 protected batches. An application requests:

```json
{"type":"CWI","isInvocation":true,"id":"b2ZmbGluZTAwMQ==","call":"getVersion","args":{}}
```

One conforming response is:

```json
{"type":"CWI","isInvocation":false,"id":"b2ZmbGluZTAwMQ==","status":"success","result":{"version":"example-1.2.3; brc207-color=4; brc207-color-attested=1; brc175-offline=2; brc177-nosend=2;"}}
```

This discloses no holdings and grants no permission. Omission is not proof of non-support; actual calls still enforce supported declarations and authorization.

In an independent balance fixture, the authenticated asset below has 40 unreserved settled units, 60 accepted unreserved offline units, and 25 reserved units. All are within the caller's read scope. The caller requests:

```json
{"type":"CWI","isInvocation":true,"id":"b2ZmbGluZTAwMg==","call":"listOutputs","args":{"basket":"p color balance c7d0f61946bc8bde6c01219c67bb99cbf2f89a39bcaea9c2ecf67c54224edb4fv0"}}
```

The exact result under BRC-112's module-balance encoding is:

```json
{"type":"CWI","isInvocation":false,"id":"b2ZmbGluZTAwMg==","status":"success","result":{"totalOutputs":"100","outputs":[]}}
```

The 25 reserved units are excluded. The wallet's user presentation distinguishes 40 settled from 60 deferred units; this scalar is spending capacity, not a statement that all 100 are settled. If policy reevaluation makes those 60 unavailable, the result becomes `"40"` and their inventory state becomes restricted. If the wallet cannot establish the balance at all, it returns an explicit error rather than a guessed sum.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hub.bsvblockchain.org/brc/wallet/0207.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
