Why
Everything else in this catalogue is a single wallet acting for itself. Institutional custody is the opposite shape: keys split across an MPC quorum, transactions gated by an approval workflow, and a compliance surface that is legal rather than technical. The useful output is a separation — which parts are engineering (MPC, approval state machines, AA policies) and which parts are a licence you either have or do not.
How it works
Reading study, not a deployment: MPC signing (threshold schemes vs. the key-splitting DVT already studied elsewhere here), approval workflows as state machines, where account abstraction's policy layer overlaps custody policy, and AML/travel-rule obligations. The PoC candidates are the ones that need no VASP registration — an approval-flow simulator, an AA policy contract with quorum caveats — and those are exactly the ones this card would become.
Related code
"""Institutional custody study PoC -- M-of-N threshold approval gate.
Illustrates the core mechanism behind MPC custody and approval workflows: a transaction
only executes once a quorum of independent signers has approved it.
"""
from dataclasses import dataclass, field
@dataclass
class Transaction:
id: str
description: str
approvals: set[str] = field(default_factory=set)
class ApprovalQuorum:
def __init__(self, signers: list[str], threshold: int):
self.signers = set(signers)
self.threshold = threshold # "M" of "N"
def approve(self, tx: Transaction, signer: str) -> str:
if signer not in self.signers:
return f"REJECTED: {signer} is not a registered quorum member"
if signer in tx.approvals:
return f"NOOP: {signer} already approved {tx.id}"
tx.approvals.add(signer)
return f"recorded approval from {signer} ({len(tx.approvals)}/{self.threshold})"
def can_execute(self, tx: Transaction) -> bool:
return len(tx.approvals) >= self.threshold
def execute(self, tx: Transaction) -> str:
if not self.can_execute(tx):
return f"BLOCKED: {tx.id} has {len(tx.approvals)}/{self.threshold} approvals"
return f"EXECUTED: {tx.id} ({tx.description}) -- quorum of {self.threshold} met"
if __name__ == "__main__":
quorum = ApprovalQuorum(signers=["alice", "bob", "carol", "dave"], threshold=3)
tx = Transaction(id="withdraw-001", description="withdraw 100 ETH to cold wallet")
for signer in ["alice", "eve", "bob", "alice", "carol"]:
print(" ", quorum.approve(tx, signer))
print(" execute?", quorum.execute(tx))
Where it lands in Jayverse
- Wallet: build the AA-policy-with-quorum-caveats contract this PoC names as licence-free. Jayverse Wallet's simulate-before-sign already overlaps custody policy — add quorum caveats to the policy layer as the concrete PoC output.
- Rabbit: build the approval-flow state machine on ERC-4337/7702 session keys and mandates. That is explicitly one of the no-VASP-licence-needed candidates this PoC lists, and Rabbit already has the session-key primitive to build it on.
- Auditor: run the engineering-vs-licence separation before any custody-adjacent feature. Before Verex holds user funds or Number distributes licensed readings, list which parts are buildable now and which require a licence, per this PoC's method.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| gated by | ~에 의해 통제·제한되는 · "transactions gated by an approval workflow" |
| quorum caveats | 정족수 관련 제약 조건 · "an AA policy contract with quorum caveats" |
| compliance surface | 컴플라이언스가 걸리는 영역 · "a compliance surface that is legal rather than technical" |
| survive (a filter) | 걸러내는 과정에서 살아남다 · "whichever PoC items survive the licence question" |
| opposite shape | 정반대의 형태·구조 · "Institutional custody is the opposite shape" |
| overlap with | ~와 겹치다, 맞물리다 · "where account abstraction's policy layer overlaps custody policy" |
| key-splitting | 키를 여러 조각으로 나누어 분산 보관하는 방식 · "threshold schemes vs. the key-splitting DVT" |
| MPC | 다자간 계산(Multi-Party Computation) · 키를 분할해 여러 참여자가 공동 서명하는 방식. "keys split across an MPC quorum" |
| VASP | 가상자산서비스제공자(Virtual Asset Service Provider) · 이 라이선스 유무로 엔지니어링 가능 범위가 갈린다. "which parts are buildable without a VASP licence" |
| AML | 자금세탁방지(Anti-Money Laundering) · 트래블룰 등 컴플라이언스 의무 문맥에서 언급된다. "AML/travel-rule obligations" |
| DVT | 분산 검증자 기술(Distributed Validator Technology) · 키 분할 방식의 비교 대상으로 언급된다. "threshold schemes vs. the key-splitting DVT" |