@otonix/cli 2.1.2 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @otonix/cli
2
2
 
3
- Otonix CLI — deploy autonomous agent tokens on Base chain via Clanker v3.1 (LP Legacy).
3
+ **Otonix CLI** — deploy autonomous agent tokens on Base via **Clanker v4 (Uniswap v4)**.
4
+
5
+ Each agent gets an isolated Base wallet. Tokens are deployed on-chain using the Clanker v4 protocol — no API key required, direct on-chain deploy. All tokens are verified by Otonix (@otonix_tech).
4
6
 
5
7
  ## Install
6
8
 
@@ -8,33 +10,33 @@ Otonix CLI — deploy autonomous agent tokens on Base chain via Clanker v3.1 (LP
8
10
  npm install -g @otonix/cli
9
11
  ```
10
12
 
11
- Or run locally (dev):
12
-
13
- ```bash
14
- bash cli/otonix.sh <command>
15
- ```
13
+ Requires Node.js 18.
16
14
 
17
15
  ## Quick Start
18
16
 
19
17
  ```bash
20
- # 1. Generate a new Base creator wallet
18
+ # 1. Generate your creator wallet
21
19
  otonix wallet generate
20
+ otonix wallet address
21
+ # → Fund it: ≥200 $OTX + 0.01 ETH (Base)
22
22
 
23
- # 2. Fund the wallet
24
- # → Send ≥200 $OTX (agent activation)
25
- # → Send ETH for gas
26
-
27
- # 3. Create an agent (generates isolated Base wallet)
23
+ # 2. Create an agent (isolated Base wallet)
28
24
  otonix agent:create --name "MyAgent"
25
+ otonix agent:info MyAgent
26
+ # → Fund agent with ~0.003 ETH (Base) for gas
29
27
 
30
- # 4. Fund agent wallet with ~0.002 ETH (shown after create)
28
+ # 3. Register agent auto-sends 200 $OTX as activation fee
29
+ otonix agent:register --name "MyAgent"
30
+ # → Verifies on-chain, marks agent as active
31
31
 
32
- # 5. Deploy a token!
32
+ # 4. Deploy a token!
33
33
  otonix launch token \
34
- --agent MyAgent \
34
+ --agent "MyAgent" \
35
35
  --name "CoolToken" \
36
36
  --ticker "COOL" \
37
- --description "My agent token"
37
+ --image "https://your-logo-url.png" \
38
+ --description "My agent-launched token" \
39
+ --twitter "yourhandle"
38
40
  ```
39
41
 
40
42
  ## Commands
@@ -43,47 +45,72 @@ otonix launch token \
43
45
 
44
46
  ```bash
45
47
  otonix wallet generate # Generate new Base creator wallet
46
- otonix wallet import # Import wallet from private key
47
- otonix wallet export # Show private key (careful!)
48
- otonix wallet balance # Show ETH + $OTX balance
49
48
  otonix wallet address # Show wallet address
49
+ otonix wallet balance # Show ETH + $OTX balance
50
+ otonix wallet import # Import wallet from private key
51
+ otonix wallet export # Export private key (keep safe!)
50
52
  ```
51
53
 
52
54
  ### Agents
53
55
 
54
56
  ```bash
55
- otonix agent:create --name MyAgent # Create isolated agent wallet (requires 200 $OTX)
56
- otonix agent:info MyAgent # Show agent address + balances
57
- otonix agent:list # List all agents
58
- otonix agent:remove MyAgent # Remove agent from local config
57
+ otonix agent:create --name <name> # Create isolated agent wallet
58
+ otonix agent:register --name <name> # Activate agent (auto-sends 200 $OTX)
59
+ otonix agent:info <name> # Show address, balances, status
60
+ otonix agent:list # List all agents with status
61
+ otonix agent:remove <name> # Remove agent from local config
59
62
  ```
60
63
 
61
64
  ### Launch
62
65
 
63
66
  ```bash
64
67
  otonix launch token \
65
- --agent MyAgent \
66
- --name "CoolToken" \
67
- --ticker "COOL" \
68
- --image "https://..." \ # Optional
69
- --description "My token" \ # Optional
70
- --mcap 10 \ # Initial market cap in ETH (default: 10)
71
- --devbuy 0 # Dev buy in ETH (default: 0)
68
+ --agent <name> \ # Agent name (must be registered)
69
+ --name <token-name> \ # Token name [required]
70
+ --ticker <symbol> \ # Token ticker/symbol [required]
71
+ --image <url> \ # Logo URL (https:// or ipfs://) [required]
72
+ --description <text> \ # Token description [required]
73
+ --twitter <handle> \ # Your Twitter/X handle (optional)
74
+ --devbuy <eth> # Initial dev buy in ETH (default: 0)
72
75
  ```
73
76
 
74
- ## Config
77
+ ### Other
78
+
79
+ ```bash
80
+ otonix config # Show config file location and settings
81
+ otonix --version # Show CLI version
82
+ otonix --help # Show all commands
83
+ ```
75
84
 
76
- Stored at `~/.otonix/config.json`. Contains wallet and agent private keys — keep it safe.
85
+ ## How Registration Works
86
+
87
+ Agent registration is fully automatic:
88
+
89
+ 1. Run `otonix agent:register --name "MyAgent"`
90
+ 2. CLI checks your creator wallet has ≥200 $OTX and ETH for gas
91
+ 3. Confirms with you before sending
92
+ 4. Auto-sends 200 $OTX from creator wallet → Otonix treasury on Base
93
+ 5. Waits for on-chain confirmation
94
+ 6. Marks agent as `✓ Registered & Active`
77
95
 
78
96
  ## Technical Details
79
97
 
80
- - **LP Protocol**: Clanker v4 (Uniswap v4, POOL_POSITIONS.Standard)
81
- - **Paired Token**: WETH on Base (`0x4200000000000000000000000000000000000006`)
82
- - **Fee split**: 80% creator (WETH) / 20% Otonix treasury
83
- - **Chain**: Base Mainnet
98
+ | Property | Value |
99
+ |---|---|
100
+ | LP Protocol | Clanker v4 (Uniswap v4) |
101
+ | Pool type | POOL_POSITIONS.Standard |
102
+ | Fee config | FEE_CONFIGS.StaticBasic |
103
+ | Paired token | WETH on Base |
104
+ | Fee split | 80% creator (WETH) / 20% Otonix treasury |
105
+ | Chain | Base Mainnet |
106
+ | Verified by | Otonix (@otonix_tech) |
107
+
108
+ ## Config
109
+
110
+ Stored at `~/.otonix/config.json`. Contains wallet and agent private keys — **keep this file safe and never share it**.
84
111
 
85
- ## Requirements
112
+ ## Links
86
113
 
87
- - Node.js ≥ 18
88
- - ≥200 $OTX on creator wallet (Base)
89
- - ETH in agent wallet for gas (~0.001–0.003 ETH per deploy)
114
+ - Website: [otonix.tech](https://otonix.tech)
115
+ - Twitter: [@otonix_tech](https://x.com/otonix_tech)
116
+ - $OTX: [DexScreener](https://dexscreener.com/base/0xF7E2a6226Ffe0693DD85406AC3A8917cbea5DC40)
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ const program = new Command();
15
15
  program
16
16
  .name("otonix")
17
17
  .description(chalk.bold.hex("#4d6fff")("OTONIX CLI") + chalk.dim(" — Web4 Autonomous Agent Infrastructure"))
18
- .version("2.1.2", "-v, --version")
18
+ .version("2.1.4", "-v, --version")
19
19
  .configureOutput({
20
20
  writeOut: str => process.stdout.write(str),
21
21
  writeErr: str => process.stderr.write(str),
@@ -1965,6 +1965,7 @@ export declare const publicClient: {
1965
1965
  withdrawals?: import("viem").Withdrawal[] | undefined | undefined;
1966
1966
  withdrawalsRoot?: `0x${string}` | undefined;
1967
1967
  transactions: includeTransactions extends true ? ({
1968
+ v: bigint;
1968
1969
  yParity: number;
1969
1970
  from: import("abitype").Address;
1970
1971
  gas: bigint;
@@ -1975,7 +1976,6 @@ export declare const publicClient: {
1975
1976
  s: import("viem").Hex;
1976
1977
  to: import("abitype").Address | null;
1977
1978
  typeHex: import("viem").Hex | null;
1978
- v: bigint;
1979
1979
  value: bigint;
1980
1980
  type: "deposit";
1981
1981
  gasPrice?: undefined | undefined;
@@ -1989,6 +1989,7 @@ export declare const publicClient: {
1989
1989
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
1990
1990
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
1991
1991
  } | {
1992
+ v: bigint;
1992
1993
  yParity?: undefined | undefined;
1993
1994
  from: import("abitype").Address;
1994
1995
  gas: bigint;
@@ -1999,7 +2000,6 @@ export declare const publicClient: {
1999
2000
  s: import("viem").Hex;
2000
2001
  to: import("abitype").Address | null;
2001
2002
  typeHex: import("viem").Hex | null;
2002
- v: bigint;
2003
2003
  value: bigint;
2004
2004
  accessList?: undefined | undefined;
2005
2005
  authorizationList?: undefined | undefined;
@@ -2017,6 +2017,7 @@ export declare const publicClient: {
2017
2017
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2018
2018
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2019
2019
  } | {
2020
+ v: bigint;
2020
2021
  yParity: number;
2021
2022
  from: import("abitype").Address;
2022
2023
  gas: bigint;
@@ -2027,7 +2028,6 @@ export declare const publicClient: {
2027
2028
  s: import("viem").Hex;
2028
2029
  to: import("abitype").Address | null;
2029
2030
  typeHex: import("viem").Hex | null;
2030
- v: bigint;
2031
2031
  value: bigint;
2032
2032
  accessList: import("viem").AccessList;
2033
2033
  authorizationList?: undefined | undefined;
@@ -2045,6 +2045,7 @@ export declare const publicClient: {
2045
2045
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2046
2046
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2047
2047
  } | {
2048
+ v: bigint;
2048
2049
  yParity: number;
2049
2050
  from: import("abitype").Address;
2050
2051
  gas: bigint;
@@ -2055,7 +2056,6 @@ export declare const publicClient: {
2055
2056
  s: import("viem").Hex;
2056
2057
  to: import("abitype").Address | null;
2057
2058
  typeHex: import("viem").Hex | null;
2058
- v: bigint;
2059
2059
  value: bigint;
2060
2060
  accessList: import("viem").AccessList;
2061
2061
  authorizationList?: undefined | undefined;
@@ -2073,6 +2073,7 @@ export declare const publicClient: {
2073
2073
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2074
2074
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2075
2075
  } | {
2076
+ v: bigint;
2076
2077
  yParity: number;
2077
2078
  from: import("abitype").Address;
2078
2079
  gas: bigint;
@@ -2083,7 +2084,6 @@ export declare const publicClient: {
2083
2084
  s: import("viem").Hex;
2084
2085
  to: import("abitype").Address | null;
2085
2086
  typeHex: import("viem").Hex | null;
2086
- v: bigint;
2087
2087
  value: bigint;
2088
2088
  accessList: import("viem").AccessList;
2089
2089
  authorizationList?: undefined | undefined;
@@ -2101,6 +2101,7 @@ export declare const publicClient: {
2101
2101
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2102
2102
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2103
2103
  } | {
2104
+ v: bigint;
2104
2105
  yParity: number;
2105
2106
  from: import("abitype").Address;
2106
2107
  gas: bigint;
@@ -2111,7 +2112,6 @@ export declare const publicClient: {
2111
2112
  s: import("viem").Hex;
2112
2113
  to: import("abitype").Address | null;
2113
2114
  typeHex: import("viem").Hex | null;
2114
- v: bigint;
2115
2115
  value: bigint;
2116
2116
  accessList: import("viem").AccessList;
2117
2117
  authorizationList: import("viem").SignedAuthorizationList;
@@ -2472,6 +2472,7 @@ export declare const publicClient: {
2472
2472
  } | undefined) => Promise<import("viem").EstimateMaxPriorityFeePerGasReturnType>;
2473
2473
  getStorageAt: (args: import("viem").GetStorageAtParameters) => Promise<import("viem").GetStorageAtReturnType>;
2474
2474
  getTransaction: <blockTag extends import("viem").BlockTag = "latest">(args: import("viem").GetTransactionParameters<blockTag>) => Promise<{
2475
+ v: bigint;
2475
2476
  yParity: number;
2476
2477
  from: import("abitype").Address;
2477
2478
  gas: bigint;
@@ -2482,7 +2483,6 @@ export declare const publicClient: {
2482
2483
  s: import("viem").Hex;
2483
2484
  to: import("abitype").Address | null;
2484
2485
  typeHex: import("viem").Hex | null;
2485
- v: bigint;
2486
2486
  value: bigint;
2487
2487
  type: "deposit";
2488
2488
  gasPrice?: undefined | undefined;
@@ -2496,6 +2496,7 @@ export declare const publicClient: {
2496
2496
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2497
2497
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2498
2498
  } | {
2499
+ v: bigint;
2499
2500
  yParity?: undefined | undefined;
2500
2501
  from: import("abitype").Address;
2501
2502
  gas: bigint;
@@ -2506,7 +2507,6 @@ export declare const publicClient: {
2506
2507
  s: import("viem").Hex;
2507
2508
  to: import("abitype").Address | null;
2508
2509
  typeHex: import("viem").Hex | null;
2509
- v: bigint;
2510
2510
  value: bigint;
2511
2511
  accessList?: undefined | undefined;
2512
2512
  authorizationList?: undefined | undefined;
@@ -2524,6 +2524,7 @@ export declare const publicClient: {
2524
2524
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2525
2525
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2526
2526
  } | {
2527
+ v: bigint;
2527
2528
  yParity: number;
2528
2529
  from: import("abitype").Address;
2529
2530
  gas: bigint;
@@ -2534,7 +2535,6 @@ export declare const publicClient: {
2534
2535
  s: import("viem").Hex;
2535
2536
  to: import("abitype").Address | null;
2536
2537
  typeHex: import("viem").Hex | null;
2537
- v: bigint;
2538
2538
  value: bigint;
2539
2539
  accessList: import("viem").AccessList;
2540
2540
  authorizationList?: undefined | undefined;
@@ -2552,6 +2552,7 @@ export declare const publicClient: {
2552
2552
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2553
2553
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2554
2554
  } | {
2555
+ v: bigint;
2555
2556
  yParity: number;
2556
2557
  from: import("abitype").Address;
2557
2558
  gas: bigint;
@@ -2562,7 +2563,6 @@ export declare const publicClient: {
2562
2563
  s: import("viem").Hex;
2563
2564
  to: import("abitype").Address | null;
2564
2565
  typeHex: import("viem").Hex | null;
2565
- v: bigint;
2566
2566
  value: bigint;
2567
2567
  accessList: import("viem").AccessList;
2568
2568
  authorizationList?: undefined | undefined;
@@ -2580,6 +2580,7 @@ export declare const publicClient: {
2580
2580
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2581
2581
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2582
2582
  } | {
2583
+ v: bigint;
2583
2584
  yParity: number;
2584
2585
  from: import("abitype").Address;
2585
2586
  gas: bigint;
@@ -2590,7 +2591,6 @@ export declare const publicClient: {
2590
2591
  s: import("viem").Hex;
2591
2592
  to: import("abitype").Address | null;
2592
2593
  typeHex: import("viem").Hex | null;
2593
- v: bigint;
2594
2594
  value: bigint;
2595
2595
  accessList: import("viem").AccessList;
2596
2596
  authorizationList?: undefined | undefined;
@@ -2608,6 +2608,7 @@ export declare const publicClient: {
2608
2608
  blockNumber: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : bigint : never : never;
2609
2609
  transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
2610
2610
  } | {
2611
+ v: bigint;
2611
2612
  yParity: number;
2612
2613
  from: import("abitype").Address;
2613
2614
  gas: bigint;
@@ -2618,7 +2619,6 @@ export declare const publicClient: {
2618
2619
  s: import("viem").Hex;
2619
2620
  to: import("abitype").Address | null;
2620
2621
  typeHex: import("viem").Hex | null;
2621
- v: bigint;
2622
2622
  value: bigint;
2623
2623
  accessList: import("viem").AccessList;
2624
2624
  authorizationList: import("viem").SignedAuthorizationList;
@@ -1,4 +1,7 @@
1
1
  import chalk from "chalk";
2
+ import { createRequire } from "module";
3
+ const _require = createRequire(import.meta.url);
4
+ const { version: CLI_VERSION } = _require("../../package.json");
2
5
  const BLUE = "#4d6fff";
3
6
  const BLUE_DIM = "#3a50cc";
4
7
  export const brand = chalk.bold.hex(BLUE);
@@ -25,7 +28,7 @@ export function printBanner() {
25
28
  console.log(" " +
26
29
  chalk.hex(BLUE_DIM)("web4 autonomous agent infrastructure") +
27
30
  " " +
28
- chalk.dim("v0.1.0"));
31
+ chalk.dim("v" + CLI_VERSION));
29
32
  console.log(" " + chalk.dim("─".repeat(48)));
30
33
  console.log();
31
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otonix/cli",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "Otonix CLI — deploy autonomous agent tokens on Base via Clanker v4",
5
5
  "type": "module",
6
6
  "bin": {