Skip to content

ICRC-153: Standardizing Privileged Freeze & Unfreeze Controls#157

Open
bogwar wants to merge 10 commits intomainfrom
bw/icrc-153
Open

ICRC-153: Standardizing Privileged Freeze & Unfreeze Controls#157
bogwar wants to merge 10 commits intomainfrom
bw/icrc-153

Conversation

@bogwar
Copy link
Copy Markdown
Collaborator

@bogwar bogwar commented Sep 24, 2025

This PR introduces ICRC-523, a standard API for freezing and unfreezing accounts and principals. It defines four privileged methods, canonical tx mapping, and use of the block kinds from ICRC-123. The standard provides auditors, wallets, and integrators with a consistent way to determine whether funds are frozen and to attribute freezes/unfreezes to authorized actors.

@bogwar bogwar changed the title ICRC-523: Standardizing Freeze & Unfreeze Controls ICRC-153: Standardizing Freeze & Unfreeze Controls Sep 24, 2025
@bogwar bogwar changed the title ICRC-153: Standardizing Freeze & Unfreeze Controls ICRC-153: Standardizing Privileged Freeze & Unfreeze Controls Sep 26, 2025
bogwar and others added 5 commits October 6, 2025 11:24
…ix typos

- Replace `tx.op` with `tx.mthd` as method discriminator (ICRC-3 alignment)
- Fix btype values to match ICRC-123: `123freezeaccount` not `123freeze_account`
  (same for unfreezeaccount, freezeprincipal, unfreezeprincipal)
- Fix typo: `iicrc153_unfreeze_account` → `icrc153_unfreeze_account`
- Fix typo: `rsults` → `results`, wrong btype `122freeze_account` → `123freezeaccount`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…on-wins semantics

The Effective Freeze Model section previously described a compositional OR
rule, which contradicted ICRC-123's latest-action-wins semantics. Updated
to use block-index comparison: the most recent freeze/unfreeze action
affecting an account (at either account or principal level) determines
its effective status.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Unfreeze calls must succeed even when the target is not frozen at that
level, because under ICRC-123 latest-action-wins, a principal unfreeze
can lift account-level freezes. Removed NotFrozen from both
UnfreezeAccountError and UnfreezePrincipalError variants.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant