Repository navigation
feat(statics): add tsol:cttest devnet CT test mint (CHALO-2025) - #10115
Merged
Merged
Conversation
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.
Tip: disable this comment in your organization's Code Review settings.
Contributor
Contributor
|
|
Adds a test-only Solana Token-2022 token whose devnet mint (Ai1kEjbXhD31NxkYfjCpDgfHNVSYqkQcfYSGAwXidoxU) carries the ConfidentialTransferMint extension with autoApproveNewAccounts = true. Every other CT-capable tsol mint registered here (tsol:gousd, tsol:stggousd, tsol:sofid, tsol:stgsofid, tsol:gospcx, tsol:stggospcx) has that flag off and a confidential-transfer authority held by the token issuer, so a newly configured confidential account cannot receive anything until the issuer approves it. That blocks the Solana CT indexer end-to-end proof (deposit -> KMS decrypt -> transfer document -> ATA reconcile), because the approval cannot be obtained from BitGo side. This mint was created from the sandbox (sol/confidentialTransfers/extA_createMint .mjs) with a sandbox-held mint authority and no other extensions: decimals 6, no freeze authority, no transfer fee, no transfer hook. That makes an incoming transfer take the plain ConfidentialTransfer path and removes every issuer gate, so the proof exercises only the BitGo CT pipeline. Testnet only. Follow-up: delete this entry once the CT test mints exist in a proper environment. Refs: CHALO-2025
bhavidhingra
force-pushed
the
bhavi/chalo-2025-tsol-ct-test-mint
branch
from
November 2, 2026 16:21
85f8b15 to
0c69ff1
Compare
mukeshsp
approved these changes
Nov 3, 2026
abhishekagrawal080
approved these changes
Nov 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds one test-only Solana Token-2022 token to statics:
tsol:cttest, mintAi1kEjbXhD31NxkYfjCpDgfHNVSYqkQcfYSGAwXidoxUon devnet.Why a new token instead of one of the six existing CT-capable tsol mints
(
tsol:gousd,tsol:stggousd,tsol:sofid,tsol:stgsofid,tsol:gospcx,tsol:stggospcx): every one of those hasConfidentialTransferMint.autoApproveNewAccounts = false, and the approving key is the mint's confidential-transfer authority — adifferent key from the mint authority, held by the token issuer (
G2jNxv4v…for gousd,Bcwcm84C…for stggousd/sofid/stgsofid,AvN5ZboK…for gospcx/stggospcx). With thatsetting a freshly configured confidential account cannot receive anything until the issuer
approves it, which blocks the Solana CT indexer end-to-end proof (deposit → KMS decrypt →
transfer document → ATA reconcile) on a dependency BitGo cannot satisfy.
The new mint was created from the sandbox with
autoApproveNewAccounts = trueand nothingelse attached:
ConfidentialTransferMintonly (authority = sandbox-held key, no auditor)With no fee and no hook, an incoming confidential transfer takes the plain
ConfidentialTransferpath, and there is no freeze gate, so the proof exercises only theBitGo CT pipeline rather than issuer policy.
No existing token, address or mapping is modified — the diff is one
UnderlyingAssetmemberand one
tsolToken(...)entry.Dependency for the consumer
Wallet-platform must pin a
@bitgo/statics(or@bitgo-beta/statics) release that containsthis entry before the CT deposit proof can route
enableTokenfor it; the CT enablementlane resolves the token through statics before probing the mint on-chain.
Follow-up
Delete this entry once CT test mints exist as a first-class environment asset (alongside the
tsol:*CT mints the issuers provision). Tracked on CHALO-2025.Issue Number
CHALO-2025
Type of change
How Has This Been Tested?
modules/staticsunit suite: 41,262 passing (test/unit/coins.ts,base.ts,tokenNamingConvention.tsand the rest oftest/unit/**), including the UUID/nameuniqueness and testnet-
t-prefix convention checks.prettier --checkclean on both touched files.coins.get('tsol:cttest')→{ fullName: 'Test Confidential Token', decimals: 6, tokenAddress: 'Ai1kEjbXhD31NxkYfjCpDgfHNVSYqkQcfYSGAwXidoxU', network: 'testnet' }, withtsol:gousd,tsol:stggospcx,tsol:t22mintunaffected.jsonParsed: Token-2022, decimals 6, no freeze authority,confidentialTransferMint { autoApproveNewAccounts: true, auditor: null }.Checklist