# Contract surface census Generated by `node tools/audit-surface.mjs` against `contracts/contracts/*.tolk` at commit `bc8776c3` (2026-09-26). **Measurement only** — no contract code was changed to produce this table. Regenerate rather than hand-edit; the previous hand-written census went stale by four contracts and thirty opcodes, which is why this is a script. `GAUNTLET.md` Track I ("the audit pack"), item **I2**: `docs/audit/scope.md` is this pack's boundary page; this is its contract-surface page — 16 contracts, what each is responsible for, and its measured size/opcode/get-method footprint. The Responsibility column is the one judgment call in this file (transcribed from each contract's own header comment, not invented); every other column is derived mechanically below. ## Methodology - **Responsibility**: one line, transcribed from the contract file's own header comment. - **Lines**: raw line count. **Non-comment**: lines that are non-blank and do not start with `//`, `*` or `/*` — which excludes the large header doc-comment blocks. - **Opcodes handled**: arms of the `match (msg)` union dispatch in `onInternalMessage`. Tolk dispatches on the message struct, so each arm is one 32-bit opcode, taken from the arm struct's `struct (0x…)` declaration. - **Get-methods**: `get fun` declarations, TEP-62/TEP-74 aliases included. - **Bounce**: `onBouncedMessage` shape — how many opcode-guarded arms it has, or `unguarded rollback` (one message type, restored unconditionally), or `present, no-op`. - **Outbound**: message structs the contract declares and constructs but does not handle. A message whose struct is declared in the *receiving* contract is counted on the receiver's inbound side only; `wire-format.md` is the cross-contract view. - **Storage fields**: top-level fields of `struct Storage`. Several contracts push sub-structs into ref cells (Tolk's ~1023-bit / 4-ref limit), so this counts the root cell's fields, not the transitive field count. ## Per-contract table | Contract | Responsibility | Lines | Non-comment | Opcodes | Get-methods | Bounce | Outbound | Storage fields (root) | |---|---|---:|---:|---:|---:|---|---:|---:| | `minter_standing.tolk` | _missing — add an entry to RESPONSIBILITY in tools/audit-surface.mjs_ | 135 | 61 | 0 | 0 | none | 0 | 0 | | `primes_bounty_vault.tolk` | Backs `S` with the genesis bounty vault; pays era/prime/constellation bounties (§3.3, §7). | 1043 | 466 | 8 | 10 | 1 guarded arm(s) | 1 | 8 | | `primes_claim_receipt.tolk` | Claim receipt child — one per (voucher, claimant); holds the claimant's high-water mark, address-authenticated, no assets (§9.5, D-191). | 148 | 81 | 2 | 2 | present, no-op | 1 | 3 | | `primes_collection.tolk` | TEP-62 NFT collection for numbered items — deliberately thin, the ledger does all verification (§4). | 677 | 310 | 4 | 7 | present, no-op | 4 | 6 | | `primes_constellation_item.tolk` | TEP-62 discovery certificate, minted once per unique `set_id`, ever (§3.2.2/§5.2). | 312 | 200 | 4 | 2 | present, no-op | 5 | 3 | | `primes_constellations_collection.tolk` | TEP-62 collection gating the once-forever constellation-discovery mint (§3.2.2/§5.2). | 326 | 219 | 3 | 6 | present, no-op | 1 | 5 | | `primes_generator_item.tolk` | _missing — add an entry to RESPONSIBILITY in tools/audit-surface.mjs_ | 302 | 177 | 4 | 2 | present, no-op | 3 | 4 | | `primes_generators_collection.tolk` | _missing — add an entry to RESPONSIBILITY in tools/audit-surface.mjs_ | 696 | 317 | 4 | 6 | present, no-op | 2 | 8 | | `primes_item.tolk` | TEP-62 NFT item for a minted number; holds the per-prime `owed` scalar directly, no dictionary (§3.2.1/§3.4). | 733 | 384 | 10 | 12 | unguarded rollback | 6 | 4 | | `primes_jetton_master.tolk` | TEP-74 PRIMES jetton master; mint authority is the ledger (§5). | 374 | 205 | 7 | 4 | 1 guarded arm(s) | 3 | 7 | | `primes_jetton_wallet.tolk` | Standard TEP-74 jetton wallet, unmodified from spec. | 332 | 178 | 3 | 2 | 2 guarded arm(s) | 4 | 3 | | `primes_ledger.tolk` | Splitter + Ledger, the core contract: executes mints, the five-way split (§4.1), owed-balance accounting. | 5720 | 2557 | 26 | 34 | 4 guarded arm(s) | 20 | 13 | | `primes_lp_position.tolk` | LP position child — one per depositing wallet; lock terms that buy a vote, nothing else (§5.5.3, D-147/D-168). | 695 | 430 | 9 | 8 | unguarded rollback | 5 | 8 | | `primes_lp_sink.tolk` | _missing — add an entry to RESPONSIBILITY in tools/audit-surface.mjs_ | 253 | 60 | 2 | 3 | none | 0 | 5 | | `primes_market.tolk` | THE MARKET — the one price-discovery mechanism (auction or Dutch lane) for every number ahead of the head; a won lot mints at close (§4.4, D-90). | 3069 | 1534 | 9 | 23 | 3 guarded arm(s) | 4 | 5 | | `primes_minter_card.tolk` | Minter card child — one per (ledger, wallet); holds the wallet's rebate standing and era tally, forwards its head mints to the ledger, address-authenticated, no assets (§4.5/§4.7, D-191). | 332 | 191 | 4 | 7 | unguarded rollback | 2 | 6 | | `primes_ratchet.tolk` | Ratchet — owns `pending`, `flush()` and the DeDust leg; the `p_f = T/S` floor-appreciation guarantee lives here (§5). | 2308 | 844 | 16 | 19 | 4 guarded arm(s) | 3 | 15 | | `primes_registrar.tolk` | Registrar — prime ranks, naming rights, and the constellation registry; holds no protocol TON (§3.4/§4.7). | 2941 | 1688 | 17 | 10 | 1 guarded arm(s) | 6 | 4 | | `primes_sink.tolk` | Burn sink — §5.2 family 1, burn-priced cosmetics and rights. | 556 | 239 | 4 | 5 | present, no-op | 4 | 6 | | `primes_stake.tolk` | Stake master — PRIMES locked for a term, streamed the treasury’s `distribute()` budget pro rata to weight; owes PRIMES only, no TON (§5.3, D-168). | 789 | 460 | 3 | 9 | unguarded rollback | 4 | 3 | | `primes_stake_position.tolk` | Stake position child — one per staking wallet; holds its positions, address-authenticated, no assets (§5.3, D-168). | 455 | 306 | 7 | 6 | unguarded rollback | 1 | 7 | | `primes_treasury.tolk` | Governed treasury — spends only by passed proposal or `distribute()` to the stake master; custodies depositors’ LP for the vote (§5.5, D-100/D-168). | 1316 | 739 | 11 | 13 | 1 guarded arm(s) | 5 | 4 | | `primes_venue_timelock.tolk` | Venue timelock — the entire admin surface of the protocol, queued and delayed. | 347 | 157 | 5 | 1 | present, no-op | 1 | 6 | | `primes_vesting.tolk` | One half of the genesis PRIMES allocation (operator or treasury — two instances, D-100 point 6), released in four equal 90-day tranches with no admin surface (§2 point 4/§3.3/§6 point 3, D-77/D-91). | 360 | 144 | 2 | 3 | 1 guarded arm(s) | 1 | 4 | | `primes_voucher.tolk` | Voucher claim — redeems backend-signed quest/referral vouchers into PRIMES (§9.4/§9.5). | 436 | 196 | 4 | 5 | unguarded rollback | 3 | 9 | | **Total (25 contracts)** | | **24655** | **12143** | **168** | **199** | — | **89** | **146** | The totals row sums per-contract surface area; it is not a distinct-opcode count — an opcode is counted once on its sending contract and once on its handling contract. `shared/opcodes.ts` declares 169 distinct wire values; 175 distinct values exist across the registry, the `.tlb` schemas and the contracts combined. ## Detail: opcodes and get-methods per contract ### minter_standing.tolk - Handles (0): _none_ - Get-methods (0): _none_ - Sends (0): _none declared locally_ - Bounce: none ### primes_bounty_vault.tolk - Handles (8): `SetWallet` (0x90000003), `PayEraBounty` (0xb0000032), `PaySpecialNumberRebate` (0xb0000072), `PayProgramBounty` (0x90000002), `AccrueDiscovery` (0x90000005), `ClaimDiscovery` (0x90000006), `RetryBountyPayout` (0x90000004), `Excesses` (0xd53276db) - Get-methods (10): `getEraSchedule`, `getRebateSchedule`, `getDiscoveryTier`, `getDiscoveryOwed`, `getDiscoveryAccrued`, `getVaultPayouts`, `getDeferredPayouts`, `getRetryEntry`, `getVaultConfig`, `isAllowlisted` - Sends (1): `JettonTransfer` (0x0f8a7ea5) - Bounce: 1 guarded arm(s) ### primes_claim_receipt.tolk - Handles (2): `ReceiptAdvance` (0x9a000004), `ReceiptRestore` (0x9a000006) - Get-methods (2): `getPaid`, `getReceiptOwner` - Sends (1): `ReceiptDelta` (0x9a000005) - Bounce: present, no-op ### primes_collection.tolk - Handles (4): `SetLedger` (0xc0000003), `RelayAnnotation` (0xc0000008), `GetRoyaltyParams` (0x693d3950), `MintItem` (0xc0000001) - Get-methods (7): `getCollectionData`, `getItemAddress`, `get_collection_data`, `get_nft_address_by_index`, `getRoyaltySplit`, `royalty_params`, `get_nft_content` - Sends (4): `MintConfirmed` (0xb000007a), `Populate` (0xc0000002), `RoyaltyToRatchet` (0xb0000079), `ItemAnnotate` (0xc1000007) - Bounce: present, no-op ### primes_constellation_item.tolk - Handles (4): `Populate` (0x93000002), `Transfer` (0x5fcc3d14), `ProveOwnership` (0xb0000063), `GetStaticData` (0x2fcb26a2) - Get-methods (2): `getConstellationData`, `get_nft_data` - Sends (5): `ConstellationBuilt` (0x94000001), `OwnershipAssigned` (0x05138d91), `Excesses` (0xd53276db), `ReportStaticData` (0x8b771735), `OwnershipProof` (0xb0000064) - Bounce: present, no-op ### primes_constellations_collection.tolk - Handles (3): `SetRegistrar` (0x93000003), `GetRoyaltyParams` (0x693d3950), `MintConstellation` (0x93000001) - Get-methods (6): `getCollectionData`, `getItemAddress`, `get_collection_data`, `get_nft_address_by_index`, `royalty_params`, `get_nft_content` - Sends (1): `Populate` (0x93000002) - Bounce: present, no-op ### primes_generator_item.tolk - Handles (4): `Populate` (0x98000002), `Transfer` (0x5fcc3d14), `Burn` (0x99000001), `GetStaticData` (0x2fcb26a2) - Get-methods (2): `getGeneratorData`, `get_nft_data` - Sends (3): `OwnershipAssigned` (0x05138d91), `Excesses` (0xd53276db), `ReportStaticData` (0x8b771735) - Bounce: present, no-op ### primes_generators_collection.tolk - Handles (4): `SetLedger` (0x98000003), `SetRegistrar` (0x98000004), `GetRoyaltyParams` (0x693d3950), `DeployGenerator` (0x98000001) - Get-methods (6): `getCollectionData`, `get_collection_data`, `get_nft_address_by_index`, `getRoyaltySplit`, `royalty_params`, `get_nft_content` - Sends (2): `Populate` (0x98000002), `RoyaltyToRatchet` (0xb0000079) - Bounce: present, no-op ### primes_item.tolk - Handles (10): `Populate` (0xc0000002), `ItemAnnotate` (0xc1000007), `CreditTribute` (0xb0000030), `CreditDividend` (0xb0000036), `ClaimTribute` (0xc1000001), `Transfer` (0x5fcc3d14), `GetStaticData` (0x2fcb26a2), `ForwardToOwner` (0xc1000002), `ProveOwnership` (0xb0000063), `TopUp` (0xc1000006) - Get-methods (12): `getNumberData`, `getMintedDay`, `getOwed`, `getDivEntry`, `getClaimableDividend`, `getForfeited`, `getTributeTotal`, `getReferralPaid`, `getNamer`, `getAnnotation`, `getStorageRunway`, `get_nft_data` - Sends (6): `DividendCredited` (0xb000000e), `OwnershipAssigned` (0x05138d91), `Excesses` (0xd53276db), `ReportStaticData` (0x8b771735), `OwnershipProof` (0xb0000064), `LedgerClaimTribute` (0xb0000004) - Bounce: unguarded rollback ### primes_jetton_master.tolk - Handles (7): `SetLedger` (0xd0000004), `MintOp` (0xd0000001), `MintGenesis` (0xd0000002), `SealAuthority` (0xd0000003), `BurnNotification` (0x7bdd97de), `ProvideWalletAddress` (0x2c76b973), `Excesses` (0xd53276db) - Get-methods (4): `getJettonData`, `getWalletAddress`, `get_jetton_data`, `get_wallet_address` - Sends (3): `InternalTransfer` (0x178d4519), `Excesses` (0xd53276db), `TakeWalletAddress` (0xd1735400) - Bounce: 1 guarded arm(s) ### primes_jetton_wallet.tolk - Handles (3): `InternalTransfer` (0x178d4519), `Transfer` (0x0f8a7ea5), `Burn` (0x595f07bc) - Get-methods (2): `getWalletData`, `get_wallet_data` - Sends (4): `InternalTransfer` (0x178d4519), `TransferNotification` (0x7362d09c), `BurnNotification` (0x7bdd97de), `Excesses` (0xd53276db) - Bounce: 2 guarded arm(s) ### primes_ledger.tolk - Handles (26): `CardMint` (0x9b000001), `CardRecruitCounted` (0x9b000003), `LedgerClaimTribute` (0xb0000004), `ClaimDividend` (0xb0000008), `DividendCredited` (0xb000000e), `RetryCredit` (0xb0000005), `RetryMint` (0xb000000d), `SetSinks` (0xb0000042), `SetInviteConfig` (0xb0000046), `Ignite` (0xb000000a), `SyncLaunch` (0xb000000b), `GenesisSeed` (0xb0000040), `ClearingCleared` (0xb0000009), `RoyaltyToRatchet` (0xb0000079), `DonateFloor` (0xb000000c), `SettlePrimeClearing` (0xb0000024), `SetPeers` (0xb0000041), `SweepOps` (0xb0000007), `MarkOffHead` (0xb0000021), `SyncHead` (0xb0000023), `AdvanceHead` (0xb000007c), `OpenBuild` (0xb0000074), `MintWonLot` (0xb0000020), `MintConfirmed` (0xb000007a), `RetryItem` (0xb000007b), `QuoteFloor` (0xb0000047) - Get-methods (34): `getFloorNum`, `getFloorDen`, `getMaxSupply`, `getUnmintedHeld`, `getSeedT`, `getDivAcc`, `getDivEntry`, `getClaimableDividend`, `getSolvency`, `getLiabilityBreakdown`, `getRetryItemMinValue`, `getNextUnroutedItem`, `getOpsSweep`, `getOperatorTotals`, `getFeeDests`, `getInviteSpend`, `getInviteConfig`, `getSinks`, `getHead`, `getWalkPending`, `getLaunch`, `getPrimesCount`, `getLastMintTime`, `getK`, `getKMax`, `getMinterCardAddress`, `getKMaxFor`, `getEraLeader`, `isKnownPrime`, `isNumberOffHead`, `getPeers`, `getForfeited`, `isPrimeUnsold`, `getItemAddress` - Sends (20): `CreditDividend` (0xb0000036), `LaunchOpenMarket` (0xe0000034), `FloorQuote` (0x92000002), `RelayOpenBuild` (0xb000007d), `HeadUpdate` (0xe0000031), `SettleConfirmed` (0xe0000033), `MarkRejected` (0xe0000032), `PayEraBounty` (0xb0000032), `PaySpecialNumberRebate` (0xb0000072), `AwardEraTrophy` (0xb000006b), `MintItem` (0xc0000001), `ForwardToOwner` (0xc1000002), `DeployGenerator` (0x98000001), `CreditTribute` (0xb0000030), `JettonMint` (0xd0000001), `PoolInject` (0xb0000050), `RecordMint` (0xb0000061), `CardMintRefunded` (0x9b000005), `CardAddRecruit` (0x9b000002), `CardPrimeMinted` (0x9b000004) - Bounce: 4 guarded arm(s) ### primes_lp_position.tolk - Handles (9): `LpCredit` (0x96000010), `ConfirmWithdraw` (0x96000012), `RestorePosition` (0x96000013), `Withdraw` (0x96000021), `ToSink` (0x96000023), `PositionVote` (0x96000024), `PositionPropose` (0x96000025), `Relock` (0x96000026), `Expire` (0x96000027) - Get-methods (8): `getPositions`, `getPosition`, `getHasVoted`, `getVotedCount`, `getVoteWeight`, `getPositionOwner`, `getTierTerms`, `getPositionMinForward` - Sends (5): `RelockVote` (0x96000002), `WithdrawLp` (0x96000003), `Vote` (0x96000004), `Propose` (0x96000005), `ExpireVote` (0x96000007) - Bounce: unguarded rollback ### primes_lp_sink.tolk - Handles (2): `SetWallet` (0x97000001), `TransferNotification` (0x7362d09c) - Get-methods (3): `getLocked`, `getEvents`, `getLpSinkConfig` - Sends (0): _none declared locally_ - Bounce: none ### primes_market.tolk - Handles (9): `OpenLot` (0xf2000001), `OpenHeadLot` (0xf2000002), `BidLot` (0xf2000003), `CloseLot` (0xf2000004), `RetryPremiumForward` (0xf2000012), `HeadUpdate` (0xe0000031), `LaunchOpen` (0xe0000034), `SettleConfirmed` (0xe0000033), `MarkRejected` (0xe0000032) - Get-methods (23): `getLaunched`, `getHeadHint`, `getAuctionableMax`, `getLotPrice`, `getLotPriceFrom`, `getLot`, `getLotFloor`, `getIsOpenable`, `getLotLane`, `getResGas`, `getResFeeSplit`, `getMarketParams`, `getIncrementLadder`, `getPrimeDutchTerms`, `getPrimeFloor`, `getScoreBreakdown`, `getScoreBreakdownFrom`, `getFracTable`, `getScoreWeights`, `getMarketConfig`, `getNpv`, `getMarketStats`, `getSolvency` - Sends (4): `MarkOffHead` (0xb0000021), `MintWonLot` (0xb0000020), `ClearingCleared` (0xb0000009), `SettlePrimeClearing` (0xb0000024) - Bounce: 3 guarded arm(s) ### primes_minter_card.tolk - Handles (4): `Mint` (0xb0000002), `CardMintRefunded` (0x9b000005), `CardAddRecruit` (0x9b000002), `CardPrimeMinted` (0x9b000004) - Get-methods (7): `getMinterState`, `getRecruitRank`, `getNewcomerWindow`, `getUpliftLine`, `getEraRecruits`, `getStanding`, `getCardOwner` - Sends (2): `CardMint` (0x9b000001), `CardRecruitCounted` (0x9b000003) - Bounce: unguarded rollback ### primes_ratchet.tolk - Handles (16): `PoolInject` (0xb0000050), `Flush` (0xb0000006), `UpdateVenue` (0xb0000010), `TransferNotification` (0x7362d09c), `SetLedger` (0xb0000051), `SetJettonWallet` (0xb0000052), `DedustPayout` (0x474f86cf), `Stake` (0xb0000053), `Unstake` (0xb0000054), `Harvest` (0xb0000055), `RecoverExit` (0xb0000057), `SetTstonWallet` (0xb0000056), `TonstakersWithdrawal` (0x0a77535c), `PayoutOwnershipAssigned` (0x05138d91), `PayoutDistributedAsset` (0xdb3b8abd), `Excesses` (0xd53276db) - Get-methods (19): `getPending`, `getSwapped`, `getInFlightFlush`, `getBurnStats`, `getBurnWallet`, `getFlushStatus`, `getFloorOracle`, `getLastMinOut`, `getFloorCache`, `getSolvency`, `getVenue`, `getLastFlushTs`, `getStaking`, `getStakeMin`, `getStakingGates`, `getStakingVenue`, `getTstonWallet`, `getHarvestDest`, `getExitLeg` - Sends (3): `JettonBurn` (0x595f07bc), `TonstakersDeposit` (0x47d54391), `Excesses` (0xd53276db) - Bounce: 4 guarded arm(s) ### primes_registrar.tolk - Handles (17): `RecordMint` (0xb0000061), `AwardEraTrophy` (0xb000006b), `TransferTrophy` (0xb0000070), `SetLedger` (0xb0000060), `SetItemCode` (0xb0000067), `SetGeneratorsCollection` (0xb0000078), `SetSink` (0xb000006c), `SetConstellationCollection` (0xb0000071), `Annotate` (0xb000006d), `SinkAnnotate` (0xb000006e), `OpenBuild` (0xb000007d), `ProveInput` (0xb0000075), `OwnershipProof` (0xb0000064), `OwnershipAssigned` (0x05138d91), `CloseBuild` (0xb0000076), `ConstellationBuilt` (0x94000001), `ExpireBuild` (0xb0000077) - Get-methods (10): `getTrophy`, `getBuild`, `getHeadHint`, `getTotals`, `getSolvency`, `getTrophyAnnotation`, `getSinkLink`, `getConCollectionLink`, `getGeneratorsLink`, `getPeers` - Sends (6): `ProveOwnership` (0xb0000063), `RelayAnnotation` (0xc0000008), `MintConstellation` (0x93000001), `BurnGenerator` (0x99000001), `AccrueDiscovery` (0x90000005), `ReturnGenerator` (0x5fcc3d14) - Bounce: 1 guarded arm(s) ### primes_sink.tolk - Handles (4): `SetWallet` (0x92000001), `TransferNotification` (0x7362d09c), `FloorQuote` (0x92000002), `Excesses` (0xd53276db) - Get-methods (5): `getSinkBurnStats`, `getNamePriceTon`, `getSinkActions`, `getSinkCounts`, `getSinkConfig` - Sends (4): `JettonBurn` (0x595f07bc), `JettonTransfer` (0x0f8a7ea5), `SinkAnnotate` (0xb000006e), `QuoteFloor` (0xb0000047) - Bounce: present, no-op ### primes_stake.tolk - Handles (3): `SetWallet` (0x91000001), `TransferNotification` (0x7362d09c), `Settle` (0x91000002) - Get-methods (9): `getStakeSolvency`, `getStakeStream`, `getAccNow`, `getStakeTotals`, `getTierTerms`, `getTierWeights`, `getStakePositionAddress`, `getStakeMinForward`, `getStakeConfig` - Sends (4): `StakeCredit` (0x91000010), `StakeSettled` (0x91000011), `RestoreStake` (0x91000012), `JettonTransfer` (0x0f8a7ea5) - Bounce: unguarded rollback ### primes_stake_position.tolk - Handles (7): `StakeCredit` (0x91000010), `StakeSettled` (0x91000011), `RestoreStake` (0x91000012), `Claim` (0x91000021), `Relock` (0x91000022), `Withdraw` (0x91000023), `Expire` (0x91000024) - Get-methods (6): `getPositions`, `getPosition`, `getClaimable`, `getPositionOwner`, `getTierTerms`, `getPositionMinForward` - Sends (1): `Settle` (0x91000002) - Bounce: unguarded rollback ### primes_treasury.tolk - Handles (11): `SetWallets` (0x96000001), `TransferNotification` (0x7362d09c), `RelockVote` (0x96000002), `WithdrawLp` (0x96000003), `ExpireVote` (0x96000007), `Vote` (0x96000004), `Propose` (0x96000005), `Execute` (0x96000006), `Distribute` (0x96000008), `Prune` (0x96000009), `Excesses` (0xd53276db) - Get-methods (13): `getDistribution`, `getTreasuryBalances`, `getGov`, `getProposal`, `getExecutable`, `getPrunable`, `getTreasuryCounts`, `getVoteMultipliers`, `getTierTerms`, `getPositionAddress`, `getTreasuryActions`, `getTreasuryMinForward`, `getTreasuryConfig` - Sends (5): `LpCredit` (0x96000010), `ConfirmWithdraw` (0x96000012), `RestorePosition` (0x96000013), `TonPayout` (0x96000014), `JettonTransfer` (0x0f8a7ea5) - Bounce: 1 guarded arm(s) ### primes_venue_timelock.tolk - Handles (5): `SetRatchet` (0xa0000005), `Queue` (0xa0000001), `Cancel` (0xa0000002), `Execute` (0xa0000003), `RetryUpdateVenue` (0xa0000004) - Get-methods (1): `getQueued` - Sends (1): `UpdateVenue` (0xb0000010) - Bounce: present, no-op ### primes_vesting.tolk - Handles (2): `SetWallet` (0x95000001), `Release` (0x95000002) - Get-methods (3): `getVesting`, `getVestingSchedule`, `getVestingConfig` - Sends (1): `JettonTransfer` (0x0f8a7ea5) - Bounce: 1 guarded arm(s) ### primes_voucher.tolk - Handles (4): `SetVault` (0x9a000003), `ClaimVoucher` (0x9a000001), `ReceiptDelta` (0x9a000005), `BurnSigner` (0x9a000002) - Get-methods (5): `getReceiptAddress`, `getProgramPayouts`, `getSignerState`, `isProgramClosed`, `getVault` - Sends (3): `ReceiptAdvance` (0x9a000004), `ReceiptRestore` (0x9a000006), `PayProgramBounty` (0x90000002) - Bounce: unguarded rollback