npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

plugin-coti

v0.4.0

Published

COTI blockchain plugin for ElizaOS - enables private token operations and encrypted transactions

Readme

COTI Plugin

COTI blockchain plugin for ElizaOS - enables private token operations and encrypted transactions on the COTI network.

Features

Native COTI Operations

  • Native COTI Balance Checking: Get COTI token balances for any address
  • COTI Token Transfers: Send COTI tokens to other addresses
  • Account Management: List and manage COTI accounts
  • Wallet Information: Get detailed wallet and network information

Private ERC20 Token Operations

  • Deploy Private ERC20 Contracts: Create new private token contracts
  • Check Private ERC20 Balances: Get balances for private tokens
  • Transfer Private ERC20 Tokens: Send private tokens between addresses

Private ERC721 NFT Operations

  • Deploy Private ERC721 Contracts: Create new private NFT collections
  • Mint Private NFTs: Create new NFTs with encrypted metadata
  • Transfer Private NFTs: Send NFTs between addresses
  • Get Private NFT Metadata: Retrieve and decrypt NFT token URIs

Privacy Features

  • Encrypted Transactions: All operations use COTI's privacy-enhanced blockchain
  • Private Metadata: NFT metadata is encrypted and only accessible to authorized parties
  • Confidential Balances: Token balances are kept private using COTI's privacy technology

Installation

npm install plugin-coti

Configuration

Set the following environment variables:

  • COTI_PRIVATE_KEY: Private key for your COTI wallet (required)
  • COTI_AES_KEY: AES key for COTI private token encryption (required for private NFT operations)
  • COTI_RPC_URL: RPC URL for COTI network (optional, defaults to testnet)
  • COTI_NETWORK_ID: Network ID for COTI blockchain (optional, defaults to 7701)

Important: AES Key for Private Operations

For private token operations (especially NFT minting), you must provide a COTI_AES_KEY. This key is used to encrypt token metadata before storing it on the blockchain, ensuring privacy. Without this key, private NFT minting will fail.

Example .env file:

COTI_PRIVATE_KEY=your_private_key_here
COTI_AES_KEY=your_aes_key_here
COTI_RPC_URL=https://testnet.coti.io/rpc
COTI_NETWORK_ID=7701

Usage

import { plugin } from 'plugin-coti';

// Use the plugin in your ElizaOS agent

Available Actions

Native COTI Operations

GET_NATIVE_BALANCE

Check COTI token balance for an address.

Triggers: "What's my COTI balance?", "Check balance for 0x...", "Show my COTI balance"

TRANSFER_NATIVE

Transfer COTI tokens to another address.

Triggers: "Send 10 COTI to 0x...", "Transfer 5.5 COTI to alice", "Send COTI to bob"

LIST_ACCOUNTS

List all configured COTI accounts.

Triggers: "Show me my COTI accounts", "What accounts do I have?", "List my accounts"

WALLET_INFO

Get detailed wallet and network information.

Triggers: "Show me my wallet information", "What's my wallet status?", "Wallet info"

Private ERC20 Token Operations

DEPLOY_PRIVATE_ERC20_CONTRACT

Deploy a new private ERC20 token contract on the COTI blockchain.

Triggers: "Deploy a new ERC20 token", "Create a private token", "Deploy token called 'MyToken' with symbol 'MTK'"

GET_PRIVATE_ERC20_BALANCE

Check balance for a private ERC20 token.

Triggers: "Check my token balance for contract 0x...", "What's my balance for token 0x...", "Show token balance"

TRANSFER_PRIVATE_ERC20_TOKEN

Transfer private ERC20 tokens between addresses.

Triggers: "Transfer 100 tokens from contract 0x... to 0x...", "Send tokens to alice", "Transfer my tokens"

Private ERC721 NFT Operations

DEPLOY_PRIVATE_ERC721_CONTRACT

Deploy a new private ERC721 NFT contract on the COTI blockchain.

Triggers: "Deploy a new NFT collection", "Create NFT collection called 'My Art' with symbol 'ART'", "Deploy private NFT"

MINT_PRIVATE_ERC721_TOKEN

Mint a new private NFT with encrypted metadata.

Triggers: "Mint an NFT to alice with metadata https://...", "Create NFT for bob", "Mint private NFT"

TRANSFER_PRIVATE_ERC721_TOKEN

Transfer private NFTs between addresses.

Triggers: "Transfer NFT token ID 123 to bob", "Send NFT to alice", "Transfer my NFT"

GET_PRIVATE_ERC721_TOKEN_URI

Get the metadata URI for a private NFT (decrypted).

Triggers: "Get metadata for NFT token 456", "Show NFT URI for token 123", "What's the metadata for my NFT"

Structure

plugin-coti/
├── src/
│   ├── actions/                           # COTI blockchain actions
│   │   ├── getNativeBalance.ts           # Get COTI balance
│   │   ├── transferNative.ts             # Transfer COTI tokens
│   │   ├── listAccounts.ts               # List accounts
│   │   ├── walletInfo.ts                 # Wallet information
│   │   ├── deployPrivateErc20Contract.ts # Deploy ERC20 contracts
│   │   ├── getPrivateErc20Balance.ts     # Get ERC20 balances
│   │   ├── transferPrivateErc20Token.ts  # Transfer ERC20 tokens
│   │   ├── deployPrivateErc721Contract.ts # Deploy NFT contracts
│   │   ├── mintPrivateErc721Token.ts     # Mint NFTs
│   │   ├── transferPrivateErc721Token.ts # Transfer NFTs
│   │   └── getPrivateErc721TokenUri.ts   # Get NFT metadata
│   ├── providers/                        # Blockchain providers
│   │   ├── cotiProvider.ts               # COTI network provider
│   │   └── wallet.ts                     # Wallet management
│   ├── types/                            # Type definitions
│   │   └── index.ts                      # Shared types
│   └── index.ts                          # Plugin export
├── package.json                          # Dependencies and config
└── README.md                             # This file

Example Usage

Deploy and Use Private ERC20 Token

// Deploy a new private ERC20 token
"Deploy a new ERC20 token called 'MyToken' with symbol 'MTK' and 18 decimals"

// Check token balance
"Check my token balance for contract 0x1234567890123456789012345678901234567890"

// Transfer tokens
"Transfer 100 tokens from contract 0x1234... to 0x5678..."

Deploy and Use Private NFT Collection

// Deploy a new NFT collection
"Deploy a new NFT collection called 'My Art Gallery' with symbol 'ART'"

// Mint an NFT
"Mint an NFT to alice with metadata https://example.com/art/1.json"

// Transfer NFT
"Transfer NFT token ID 123 to bob"

// Get NFT metadata
"Get the metadata URI for NFT token 456"

Native COTI Operations

// Check COTI balance
"What's my COTI balance?"

// Transfer COTI
"Send 10 COTI to 0x1234567890123456789012345678901234567890"

// List accounts
"Show me my COTI accounts"

// Get wallet info
"Show me my wallet information"

Development Commands

# Start in development mode with hot reload
npm run dev

# Start in production mode
npm run start

# Build the plugin
npm run build

# Run tests
npm test

# Format code
npm run format

Security

  • Never share your private key - Keep your COTI_PRIVATE_KEY secure
  • Use testnet for development - Test all operations on testnet first
  • Verify transaction details - Always double-check addresses and amounts
  • Private data protection - Remember that while transactions are private, contract addresses are still visible on-chain
  • Metadata encryption - NFT metadata is encrypted but ensure your metadata URLs are also secure

Troubleshooting

Common Issues

  1. "Insufficient funds" error: Make sure your wallet has enough COTI tokens for gas fees
  2. "Contract not found" error: Verify the contract address is correct and deployed on the right network
  3. "Private key invalid" error: Check that your COTI_PRIVATE_KEY is properly formatted
  4. "Network connection failed" error: Verify your COTI_RPC_URL is accessible

Debug Mode

Enable debug logging by setting:

DEBUG=plugin-coti:*

License

UNLICENSED