Table of contents Welcome Networks Faucet Contracts Addresses Adding the COTI Network to Metamask How COTI Works Introduction EVM Introduction Conceptual Overview Use Cases and Applications COTI Architecture Advanced Topics Garbled Circuits AES Keys Precompiles Whitepaper COTI vs others Build on COTI Core Concepts Account Onboarding Procedure Private Data Types Supported Operations on Private Data Types Quickstart Guides Basic Private Smart Contract Account Onboard Sending a Transaction with Encrypted Inputs Resolving a Transaction's Encrypted Outputs Writing a Private Smart Contract Dos and Don'ts Proper Use of Types No Constant/Immutable Secret Types No Public Contract Variables Best Practices Careful Onboarding Careful Decrypting Don't loop over an array without an index Check Overflow Tools TypeScript SDK Ethers.js Python SDK Web3.py Contracts Library MPC Core Data Privacy Framework Tokens Private ERC20 Private ERC721 Onboard Hardhat Remix Plugin COTI MetaMask Snap Developer Sandbox Running a COTI Node COTI Node Ecosystem Litepaper COTI Bridge Swap COTI V1 Funds to COTI V2 Support and Community Glossary Telegram Discord GitHub X YouTube COTI Builders Program