@@ -481,6 +481,146 @@ When successful, a response similar to the following will be returned:
481
481
482
482
-- -
483
483
484
+ #### 8. Coinbase Token Contract Plugin (` @eliza/plugin-coinbase ` )
485
+
486
+ This plugin enables the deployment and interaction with various token contracts (ERC20 , ERC721 , ERC1155 ) using the Coinbase SDK . It provides functionality for both deploying new token contracts and interacting with existing ones .
487
+
488
+ ** Actions :**
489
+
490
+ 1. ` DEPLOY_TOKEN_CONTRACT `
491
+ Deploys a new token contract (ERC20 , ERC721 , or ERC1155 ).
492
+ - ** Inputs ** :
493
+ - ` contractType ` (string ): Type of contract to deploy (` ERC20 ` , ` ERC721 ` , or ` ERC1155 ` )
494
+ - ` name ` (string ): Name of the token
495
+ - ` symbol ` (string ): Symbol of the token
496
+ - ` network ` (string ): Blockchain network to deploy on
497
+ - ` baseURI ` (string , optional ): Base URI for token metadata (required for ERC721 and ERC1155 )
498
+ - ` totalSupply ` (number , optional ): Total supply of tokens (only for ERC20 )
499
+ - ** Example ** :
500
+ ` ` ` json
501
+ {
502
+ "contractType": "ERC20",
503
+ "name": "MyToken",
504
+ "symbol": "MTK",
505
+ "network": "base",
506
+ "totalSupply": 1000000
507
+ }
508
+ ` ` `
509
+
510
+ 2. ` INVOKE_CONTRACT `
511
+ Invokes a method on a deployed smart contract .
512
+ - ** Inputs ** :
513
+ - ` contractAddress ` (string ): Address of the contract to invoke
514
+ - ` method ` (string ): Method name to invoke
515
+ - ` abi ` (array ): Contract ABI
516
+ - ` args ` (object , optional ): Arguments for the method
517
+ - ` amount ` (number , optional ): Amount of asset to send (for payable methods )
518
+ - ` assetId ` (string , optional ): Asset ID to send
519
+ - ` network ` (string ): Blockchain network to use
520
+ - ** Example ** :
521
+ ` ` ` json
522
+ {
523
+ "contractAddress": "0x123...",
524
+ "method": "transfer",
525
+ "abi": [...],
526
+ "args": {
527
+ "to": "0x456...",
528
+ "amount": "1000000000000000000"
529
+ },
530
+ "network": "base"
531
+ }
532
+ ` ` `
533
+
534
+ ** Description :**
535
+
536
+ The Coinbase Token Contract plugin simplifies the process of deploying and interacting with various token contracts on supported blockchain networks . It supports :
537
+
538
+ - ERC20 token deployment with customizable supply
539
+ - ERC721 (NFT ) deployment with metadata URI support
540
+ - ERC1155 (Multi - token ) deployment with metadata URI support
541
+ - Contract method invocation for deployed contracts
542
+
543
+ All contract deployments and interactions are logged to a CSV file for record - keeping and auditing purposes .
544
+
545
+ ** Usage Instructions :**
546
+
547
+ 1. ** Configure the Plugin **
548
+ Add the plugin to your character ' s configuration:
549
+
550
+ ` ` ` typescript
551
+ import { tokenContractPlugin } from "@eliza/plugin-coinbase";
552
+
553
+ const character = {
554
+ plugins: [tokenContractPlugin],
555
+ };
556
+ ` ` `
557
+
558
+ 2. ** Required Configurations **
559
+ Ensure the following environment variables or runtime settings are configured :
560
+ - ` COINBASE_API_KEY ` : API key for Coinbase SDK
561
+ - ` COINBASE_PRIVATE_KEY ` : Private key for secure transactions
562
+ - Wallet configuration (same as MassPayments plugin )
563
+
564
+ ** Example Deployments :**
565
+
566
+ 1. ** ERC20 Token **
567
+ ` ` ` typescript
568
+ const response = await runtime.triggerAction("DEPLOY_TOKEN_CONTRACT", {
569
+ contractType: "ERC20",
570
+ name: "MyToken",
571
+ symbol: "MTK",
572
+ network: "base",
573
+ totalSupply: 1000000
574
+ });
575
+ ` ` `
576
+
577
+ 2. ** NFT Collection **
578
+ ` ` ` typescript
579
+ const response = await runtime.triggerAction("DEPLOY_TOKEN_CONTRACT", {
580
+ contractType: "ERC721",
581
+ name: "MyNFT",
582
+ symbol: "MNFT",
583
+ network: "eth",
584
+ baseURI: "https://api.mynft.com/metadata/"
585
+ });
586
+ ` ` `
587
+
588
+ 3. ** Multi - token Collection **
589
+ ` ` ` typescript
590
+ const response = await runtime.triggerAction("DEPLOY_TOKEN_CONTRACT", {
591
+ contractType: "ERC1155",
592
+ name: "MyMultiToken",
593
+ symbol: "MMT",
594
+ network: "pol",
595
+ baseURI: "https://api.mymultitoken.com/metadata/"
596
+ });
597
+ ` ` `
598
+
599
+ ** Contract Interaction Example :**
600
+
601
+ ` ` ` typescript
602
+ const response = await runtime.triggerAction("INVOKE_CONTRACT", {
603
+ contractAddress: "0x123...",
604
+ method: "transfer",
605
+ abi: [...],
606
+ args: {
607
+ to: "0x456...",
608
+ amount: "1000000000000000000"
609
+ },
610
+ network: "base"
611
+ });
612
+ ` ` `
613
+
614
+ ** Best Practices :**
615
+
616
+ - Always verify contract parameters before deployment
617
+ - Store contract addresses and deployment details securely
618
+ - Test contract interactions on testnets before mainnet deployment
619
+ - Keep track of deployed contracts using the generated CSV logs
620
+ - Ensure proper error handling for failed deployments or interactions
621
+
622
+ -- -
623
+
484
624
#### 7. TEE Plugin (` @ai16z/plugin-tee ` )
485
625
486
626
Integrates [Dstack SDK ](https :// github.com/Dstack-TEE/dstack) to enable TEE (Trusted Execution Environment) functionality and deploy secure & privacy-enhanced Eliza Agents:
0 commit comments