The COTI Snap allows users to onboard their COTI account, add and view balances for encrypted private tokens on the COTI network, and interact with COTI dapps.
- AES key management: Generate, store, retrieve, and delete the user AES key in MetaMask’s secure storage.
- Confidential tokens: View and manage confidential ERC-20 token balances.
- Confidential NFTs: Display confidential NFTs (including safe fallbacks when metadata is missing).
- Private transfers: Sign and submit private transfers directly from the Snap (MetaMask no longer exposes
eth_sign). - dApp integration: Simple RPC interface for apps to check permissions, connect, encrypt/decrypt, and manage keys.
Note
The screenshots below should reflect the latest UI on https://dev.metamask.coti.io.
-
Companion dApp (Install / Connect)
-
Onboarding
-
AES key setup
-
Token list / balances
-
Transfer flow
-
NFT view
Visit docs.coti.io/coti-documentation/build-on-coti/tools/coti-metamask-snap for usage details.
To interact with COTI Snap, you will need to install MetaMask Flask, a canary distribution for developers that provides access to upcoming features.
Important
You cannot have other versions of MetaMask installed
MetaMask no longer exposes eth_sign, so private 256-bit transfers are signed inside the COTI Snap. The first private transfer will prompt for key access (BIP-44 entropy) so the Snap can produce a raw 32-byte signature.
Steps:
- Install/enable the COTI Snap.
- Approve the key access prompt when asked.
- Retry the transfer.
# In packages/site/.env.local
VITE_NODE_ENV=local
VITE_SNAP_ENV=local
VITE_SNAP_VERSION=*# In packages/site/.env.local
VITE_NODE_ENV=production
VITE_SNAP_ENV=production
VITE_SNAP_VERSION=latest-
Clone the COTI-snap repository and set up the development environment:
yarn install yarn start
This will start the companion dapp on http://localhost:8000
-
To install the COTI snap and onboard your account, follow the prompts on the companion dapp GUI.
- Production:
https://metamask.coti.io/wallet - Testnet / dev:
https://dev.metamask.coti.io
See docs.coti.io/coti-documentation/build-on-coti/tools/coti-metamask-snap for a detailed integration guide.
Run yarn test to run the tests once.
Run yarn lint to run the linter, or run yarn lint:fix to run the linter and
fix any automatically fixable issues.
Contact us on the #developers channel in Discord for questions/support.





