OpenZeppelin / OpenZeppelin/compact-contracts
Add Confidential Note Fungible Token Freeze extension
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 55
- Forks
- 29
- Avg merge
- 5d 7h
- Merged PRs (30d)
- 25
Description
🧐 Motivation
Seizure alone is a race: an authority that has decided to claw back a note loses if the owner spends first. Regulated deployments need to stop the note moving before they act on it.
📝 Details
contracts/src/token/extensions/ConfidentialNoteFungibleTokenFreeze.compact
- Freeze-before-seize: a frozen-nullifier set checked at the owner-spend chokepoint via
_assertNotFrozen. - A note is frozen by its NULLIFIER. Because
nf = H(domain, nonce)depends on the nonce alone, an authority armed by the audit trail derives the target's nullifier without consuming the note — freezing is non-destructive and needs no cooperation from the owner. - Seizure of a frozen note still works; only owner-spend paths are blocked.
- Imports no token module and holds no roles; the consumer gates
_freeze/_unfreezebehind its authority.
Landed in #679 (draft). Follow-up: document the authority sequence freeze → finality → seize (freeze only wins if it lands first).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading contracts/src/token/extensions/ConfidentialNoteFungibleTokenFreeze.compact and the implementation referenced as #679. Document the authority sequence freeze → finality → seize, including that freeze must land before the owner's spend and that seizure remains possible after freezing.
Written by the indexing model from the issue text.
Assessment
- Domain
- blockchain, documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100