create_accountLABSCO SUMMARY
Private tokens on COTI, handled end to end.
The private ERC20 and ERC721 sets are the reason to reach for this over a generic EVM server: minting, transferring and reading a balance all go through COTI's encryption, and the AES key tools that make those readable sit in the same place.
What it is
An interface to the COTI blockchain built around its MPC-based private token support. The tools cover accounts and keys, private ERC20 and ERC721 operations, contract calls and native COTI transfers.
What you get
- Account handling: create an account, generate an AES key, encrypt and decrypt values, sign and verify messages, read or switch the current network (create_account, generate_aes_key, encrypt_value, decrypt_value, sign_message, verify_signature, get_current_network, switch_network)
- Private ERC20: deploy a contract, mint, transfer, approve a spender, and read balance, allowance, decimals and total supply (deploy_private_erc20_contract, mint_private_erc20_token, transfer_private_erc20, approve_erc20_spender, get_private_erc20_balance, get_private_erc20_allowance, get_private_erc20_decimals, get_private_erc20_total_supply)
- Private ERC721: deploy a collection, mint, transfer, approve one token or an operator for all, and read owner, balance, token URI and total supply (deploy_private_erc721_contract, mint_private_erc721_token, transfer_private_erc721, approve_private_erc721, set_private_erc721_approval_for_all, get_private_erc721_token_owner, get_private_erc721_balance, get_private_erc721_token_uri, get_private_erc721_total_supply, get_private_erc721_approved, get_private_erc721_is_approved_for_all)
- Transactions: call a contract function, read logs and status, decode event data (call_contract_function, get_transaction_logs, get_transaction_status, decode_event_data)
- Native COTI: read a balance and transfer (get_native_balance, transfer_native)
Requirements
Node.js v18 or higher. You need a COTI AES key to read private balances, but nothing to bring in advance: generate_aes_key creates one after you connect. Private balances are encrypted on-chain, so without the key the read tools have nothing to return in the clear.
Setup effort
One command — npx -y @smithery/cli install @davibauer/coti-mcp --client claude
USE CASES
Launching a private token and putting it in someone's hands
Deploy the contract, mint the supply, then transfer. Balances and total supply read back through the private getters, so what a holder can see is governed by the key rather than by the explorer.
Issuing a private NFT collection
Deploy the ERC721 contract, mint tokens into it, and read owner, token URI and total supply back. Transfers and per-token approvals are separate calls, so an agent can move one without being trusted with all of them.
Letting a contract spend on your behalf, up to a limit
Approve the spender, then read the allowance back to confirm what was actually set. For NFTs the equivalent is approving one token or setting an operator for the whole collection, which are deliberately different calls.
Finding out what a transaction actually did
Read the status, pull the logs, and decode the event data into something readable, instead of matching topic hashes by hand.
Encrypting a value before it goes on-chain
Generate an AES key, encrypt the value with it, and decrypt what comes back. Signing and verification are next to them, so proving an account said something is the same session.
33 tools
Listed in project docs. Your client may show a different list.
decrypt_valueencrypt_valuegenerate_aes_keyget_current_networksign_messageswitch_networkverify_signatureapprove_erc20_spenderdeploy_private_erc20_contractget_private_erc20_allowanceget_private_erc20_balanceget_private_erc20_decimalsget_private_erc20_total_supplymint_private_erc20_tokentransfer_private_erc20approve_private_erc721deploy_private_erc721_contractget_private_erc721_approvedget_private_erc721_balanceget_private_erc721_is_approved_for_allget_private_erc721_token_ownerget_private_erc721_token_uriget_private_erc721_total_supplymint_private_erc721_tokenset_private_erc721_approval_for_alltransfer_private_erc721call_contract_functiondecode_event_dataget_transaction_logsget_transaction_statusget_native_balancetransfer_nativeBEFORE YOU INSTALL
What to know first
Tools you get
33 tools named in the project's documentation.
Requires
- node on PATH
- Node.js v18 or later
INSTALLATION
Connect your client
The command adds the entry to Claude Desktop for you; any other client needs an entry you write yourself.
Server setup
npx -y @smithery/cli install @davibauer/coti-mcp --client claudeThe README lists a COTI AES key, a private key and its public key, but its setup puts none of them in the client configuration: after connecting, you create them with the account tools — create_account for a new account, generate_aes_key for a new AES key.