Skip to content
Detent

Cached register · Privy server wallet · Hedera testnet 296 · No policy locked yet

Detent

Preview a corporate action line by line, then lock the treasury key to exactly that transaction.

ERC-1400 equity (ATS), 2026-Q3 window

Step 1 of 5

Register

Done

Who holds the security and whom the compliance module is holding, read before anything is signed.

Bosphorus Mercantile Equity

1,000,000 tokens across 12 holders on partition CLASS-A. 3 of them are currently held by the compliance module, which is the sort of thing you want to read before you sign, not after.

Holders
12
Held
3by compliance
Supply
1,000,000BMEQ
Treasury
36,000.00USDC (testnet)

Register note

Token
token contract 0x4b7d0e91c358af260d1e7b04c93f5a68d20e17bc
Source
Cached seed registerSeed register address, not on chain
Snapshot
Partition
CLASS-A
Settles in
USDC (testnet)

Cached register from fixtures/register.seed.json. Set NEXT_PUBLIC_ADAPTER_MODE=real with a token address to read the live ATS token.

Step 2 of 5

Plan

Current step

Pick the corporate action. Every included row is a line of the calldata the key will be allowed to sign.

Corporate action

Plan, as it will be signed

Distribute quarterly coupon
Pay the 2026-Q3 coupon of 0.0425 USDC per token to the holders on record at 2026-09-08. Authority: Board resolution 2026-14. Record date 2026-09-08, payment date 2026-09-15.
HolderAccountPositionCoupon dueRow
Marmara Pension Fund IITRMarmara Pension Fund II address 0x7a1f4c0b9e2d8a63c5b0e14f7d2c93ae6b085d41
0.0.5842311182,5007,756.25
Adalar Family OfficeTRAdalar Family Office address 0x3c9d02b74e8f15a6d0c2b937e418fa6d05c2b8e7
0.0.584231896,0004,080.00
Kestrel Bridge CapitalGBKestrel Bridge Capital address 0xb40e7f21c609da3b58e417c2f60ab9d38e51c704
0.0.5842324141,2506,003.125
Hanseatic Mutual InsuranceDEHanseatic Mutual Insurance address 0x5f8c1a09d3e26b47f018ca95d3702b6e14f8a0c3
0.0.584233088,7503,771.875
Zeytin Sermaye OrtakligiTRZeytin Sermaye Ortakligi address 0x91d47b0e5ca2f6031d847be09c25fa013d6b8e47
0.0.584233664,5002,741.25
Allowlist expired

Allowlist entry expired. Allowlist entry lapsed on 2026-08-31, the transfer hook will revert.

Northline Endowment TrustUSNorthline Endowment Trust address 0x2e60fb95c1d4830a7e62f19b05d3ca84e720f16b
0.0.5842342120,0005,100.00
Baltic Rim Credit UnionLTBaltic Rim Credit Union address 0xc73a058e196d2fb04a8530e9c1d762f5a80b3492
0.0.584234945,7501,944.375
Yildiz Varlik YonetimiTRYildiz Varlik Yonetimi address 0x486bd0f7a215c3e908b64d70a2f9e35c81b06da4
0.0.584235538,4001,632.00
KYC lapsed

KYC refresh overdue. KYC refresh overdue since 2026-07-15, compliance module blocks credits.

Corvid Street PartnersGBCorvid Street Partners address 0xa05f3e814d7092c6b35f8e41d07a2cb963f508e1
0.0.584236172,3003,072.75
Meridian Grain CooperativeNLMeridian Grain Cooperative address 0x6d2907c4fb8e150a3d9725b6ec08f14a70d3928c
0.0.584236851,6002,193.00
Pera Kurumsal EmeklilikTRPera Kurumsal Emeklilik address 0xf31b8607ae4c05d29b716a3f80e5d2c917b40a68
0.0.584237463,9502,717.875
Sanctions hold

Sanctions screening hold. Screening hit on 2026-09-02, position frozen pending the court order.

Falkirk Yard HoldingsGBFalkirk Yard Holdings address 0x0c94e7a3d582f10b6c49e3d75a018f26b9c40e73
0.0.584238035,0001,487.50
In the plan
9 of 12rows included
Draw
35,408.875USDC (testnet)
Treasury cover
36,000.00USDC (testnet) on 0.0.5842204
Headroom
591.125USDC (testnet)
Plan hash
plan hash 0xb43da729424748e5aaa28d8f13a1be304e9a455635c7c8d846726d148e849910
Call
distributeCoupon(bytes32,address[],uint256[]) selector 0xca4ead79

Step 3 of 5

Policy

Current step

Two officers approve, and the plan's own calldata is compiled into a wallet policy that allows that transaction and nothing else.

Key quorum, threshold two
The policy is not installed by one person. Two distinct signers on the treasury wallet open it.
  • D. Ferrand

    Ops controller, key_quorum_signer_a

  • N. Okonkwo

    Risk officer, key_quorum_signer_b

Quorum signatures
x

0 of 2 signatures collected.

Collect both approvals to install the policy.

Compiled wallet policy
One ALLOW rule, generated from the plan you just read. Everything else stays on the default, and the rule dies with the transaction.

No policy installed

Until the plan is locked, the treasury key can sign anything the contract exposes. That is the state this product exists to end. Collect both approvals to install the policy.

Step 4 of 5

Send

Up next

Two ways out of here. Send the plan as approved, or edit a number first and watch the key refuse it. Same wallet, same policy.

Treasury key, compiled locally

No Privy credentials are configured on the server, so the policy is compiled and evaluated here and the receipt is a stub. The refusal is the same one the wallet returns, which is why this path is the rehearsal path.

What this send does

This asks the treasury wallet to call distributeCoupon(bytes32,address[],uint256[]) on Bosphorus Mercantile Equity for 9 rows, drawing 35,408.875 USDC (testnet), on Hedera testnet chain 296. Nothing is asked of a browser wallet: Detent installs no wallet connector, and the key that signs is a Privy server wallet held to the policy above.

Destination contract
destination contract 0x4b7d0e91c358af260d1e7b04c93f5a68d20e17bcseed address, not on chain
Rows
9
Draw
35,408.875 USDC (testnet)
Chain
Hedera testnet, 296
Network fee
No fee: local mirror, nothing is broadcast

Change one digit and send. The policy pins the whole calldata payload, so a single altered byte falls through to the default.

Step 5 of 5

Audit record

Every plan hash, refusal and receipt from this session, newest first, in UTC.

Nothing recorded yet

Entries land here as the wallet answers. Lock a plan, then send it.