From Private Swaps to Persistent Positions
Shadow Accounts extend the STRK20 rollout The Defiant covered in June. That first phase brought shielded token balances, private transfers and swaps to Starknet, an Ethereum Layer 2. STRK20 represents tokens deposited in its privacy pool as encrypted notes, with zero-knowledge proofs validating private transactions.
The difference is a lasting owner for a DeFi position. The existing helper-contract route uses a shared address to complete an operation and return its proceeds within one transaction. A shadow account instead gives the protocol a stable pseudonymous caller that can retain balances and positions across transactions, according to the starknet.js guide.
Apps submit ordinary contract calls through `shadow_account_invoke`. The wallet manages private state, proof generation and transaction submission; the app does not receive the user’s viewing key. The shadow account itself has no signing keys and can be operated only through the ShadowAccountAnonymizer contract.
That does not remove STRK20’s disclosure mechanism. Its viewing-key documentation says an auditor acting under lawful process can recover a user’s encrypted viewing key and decrypt that user’s history.
Wallet Support Still Matters
Developers can use the released starknet.js 10.8.0, which includes Wallet API 0.10.4, but still need a connected wallet that supports the shadow-specific methods. The integration guide recommends the stable 10.8.0 release.
Ready and Xverse support the broader STRK20 wallet API, according to the starknet.js guide, but the launch documentation does not specify which releases support Shadow Accounts. The Wallet API documentation instructs developers to detect wallet capabilities before offering an action.
