Skip to content

docs: add permissioned security page under Solutions Finance Workflows - #822

Open
web3buidlerz wants to merge 2 commits into
hashgraph:mainfrom
web3buidlerz:docs/solutions-permissioned-security
Open

web3buidlerz wants to merge 2 commits into
hashgraph:mainfrom
web3buidlerz:docs/solutions-permissioned-security

Conversation

@web3buidlerz

Copy link
Copy Markdown
Contributor

The fifth and last Solutions → Finance Workflows page, paired with a scaffold-hbar template that runs on testnet.

Issue a permissioned security token and run a court-order freeze creates a token whose KYC, freeze, wipe, pause and admin keys are one 2-of-3 threshold key, so a holder without KYC cannot receive it and no single officer can freeze anyone.

Section Covers
Overview The five keys, what each allows, and a threshold key as maker-checker without a multisig contract
Set up the desk One KeyList given to all five keys, read back and decoded from the mirror node
Send without KYC ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN, refused by the network with no app code involved
Run a court order Propose, nothing happens, approve, it happens — and the same two steps for wipe, pause and unpause
Why there is a record account The scheduling whitelist, and what to do about it
Approve with your wallet The wallet as the third officer, signing the admin transaction itself
npx create-scaffold-hbar@latest --template hedera-dev/hedera-finance-templates#templates/permissioned-security

Notes for review

  • Draft: the template branch is on the author's fork for now; the install command above points at the org repo, where it will be pushed before this leaves draft.
  • The part worth a second pair of eyes is Why there is a record account. TokenFreezeAccount, TokenUnfreezeAccount, TokenPause, TokenUnpause and TokenAccountWipe are not on the scheduling whitelist — scheduling any of them fails with SCHEDULED_TRANSACTION_NOT_IN_WHITELIST and creates nothing. The template schedules a whitelisted CryptoUpdateTransaction against an account carrying the same threshold key, which gives a real two-signature gate with an id the mirror node can answer for. If there is a better way, it would be good to know.
  • The page says plainly that the separation of duties is organisational: the demo holds two of the three keys, so it can produce both signatures. The network enforcement is real; the separation is what production adds.
  • One more page in this group means one more line in the same docs.json block, so whichever of these merges first leaves a one-line conflict for the rest.

Validation

  • mint broken-links — no broken links
  • .github/scripts/check-mdx-compiles.js — compiles
  • .github/scripts/check-terminology.sh — no retired terms
  • docs.json parses
  • The template itself: yarn check-security and the build pass, and the harness run passed on attempt 3

…flows

The fifth and last Finance Workflows page: a security token whose rules are
keys the network enforces, and a court-order freeze that takes two officers
because each key is a 2-of-3 threshold key.

Covers the thing that is easy to get wrong and is documented nowhere else: the
token admin functions are not on Hedera's scheduling whitelist, so the second
signature is collected on a whitelisted account update instead, against an
account carrying the same threshold key.

Signed-off-by: web3buidlerz <seba@buidlerlabs.com>
@mintlify

mintlify Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Preview approval required

This pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit 88d5ff9.

Approve preview

… Solutions pages

Signed-off-by: web3buidlerz <seba@buidlerlabs.com>
@web3buidlerz
web3buidlerz force-pushed the docs/solutions-permissioned-security branch from bdcb2a8 to 88d5ff9 Compare October 27, 2026 15:06
@web3buidlerz
web3buidlerz marked this pull request as ready for review October 27, 2026 15:27
@web3buidlerz
web3buidlerz requested review from a team as code owners October 27, 2026 15:27

This branch has not been deployed

No deployments
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