thecrownsk-bot 1.0.0
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/LICENSE +21 -0
- package/README.md +268 -0
- package/dist/blockchain/chain.d.ts +49 -0
- package/dist/blockchain/chain.d.ts.map +1 -0
- package/dist/blockchain/chain.js +33 -0
- package/dist/blockchain/chain.js.map +1 -0
- package/dist/blockchain/client.d.ts +19 -0
- package/dist/blockchain/client.d.ts.map +1 -0
- package/dist/blockchain/client.js +121 -0
- package/dist/blockchain/client.js.map +1 -0
- package/dist/config/constants.d.ts +53 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +61 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/env.d.ts +38 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +38 -0
- package/dist/config/env.js.map +1 -0
- package/dist/crown-king.d.ts +3 -0
- package/dist/crown-king.d.ts.map +1 -0
- package/dist/crown-king.js +1093 -0
- package/dist/crown-king.js.map +1 -0
- package/dist/crownking/agent-alliance.d.ts +49 -0
- package/dist/crownking/agent-alliance.d.ts.map +1 -0
- package/dist/crownking/agent-alliance.js +260 -0
- package/dist/crownking/agent-alliance.js.map +1 -0
- package/dist/crownking/agent.d.ts +77 -0
- package/dist/crownking/agent.d.ts.map +1 -0
- package/dist/crownking/agent.js +361 -0
- package/dist/crownking/agent.js.map +1 -0
- package/dist/crownking/auto-poster.d.ts +43 -0
- package/dist/crownking/auto-poster.d.ts.map +1 -0
- package/dist/crownking/auto-poster.js +179 -0
- package/dist/crownking/auto-poster.js.map +1 -0
- package/dist/crownking/contract.d.ts +62 -0
- package/dist/crownking/contract.d.ts.map +1 -0
- package/dist/crownking/contract.js +130 -0
- package/dist/crownking/contract.js.map +1 -0
- package/dist/crownking/copy-trader.d.ts +77 -0
- package/dist/crownking/copy-trader.d.ts.map +1 -0
- package/dist/crownking/copy-trader.js +265 -0
- package/dist/crownking/copy-trader.js.map +1 -0
- package/dist/crownking/index.d.ts +16 -0
- package/dist/crownking/index.d.ts.map +1 -0
- package/dist/crownking/index.js +18 -0
- package/dist/crownking/index.js.map +1 -0
- package/dist/crownking/leaderboard.d.ts +51 -0
- package/dist/crownking/leaderboard.d.ts.map +1 -0
- package/dist/crownking/leaderboard.js +213 -0
- package/dist/crownking/leaderboard.js.map +1 -0
- package/dist/crownking/live-scanner.d.ts +85 -0
- package/dist/crownking/live-scanner.d.ts.map +1 -0
- package/dist/crownking/live-scanner.js +345 -0
- package/dist/crownking/live-scanner.js.map +1 -0
- package/dist/crownking/momentum.d.ts +41 -0
- package/dist/crownking/momentum.d.ts.map +1 -0
- package/dist/crownking/momentum.js +251 -0
- package/dist/crownking/momentum.js.map +1 -0
- package/dist/crownking/personality.d.ts +77 -0
- package/dist/crownking/personality.d.ts.map +1 -0
- package/dist/crownking/personality.js +222 -0
- package/dist/crownking/personality.js.map +1 -0
- package/dist/crownking/portfolio.d.ts +62 -0
- package/dist/crownking/portfolio.d.ts.map +1 -0
- package/dist/crownking/portfolio.js +183 -0
- package/dist/crownking/portfolio.js.map +1 -0
- package/dist/crownking/sniper.d.ts +68 -0
- package/dist/crownking/sniper.d.ts.map +1 -0
- package/dist/crownking/sniper.js +264 -0
- package/dist/crownking/sniper.js.map +1 -0
- package/dist/crownking/social-graph.d.ts +72 -0
- package/dist/crownking/social-graph.d.ts.map +1 -0
- package/dist/crownking/social-graph.js +219 -0
- package/dist/crownking/social-graph.js.map +1 -0
- package/dist/crownking/token-creator.d.ts +42 -0
- package/dist/crownking/token-creator.d.ts.map +1 -0
- package/dist/crownking/token-creator.js +159 -0
- package/dist/crownking/token-creator.js.map +1 -0
- package/dist/crownking/trading-signals.d.ts +56 -0
- package/dist/crownking/trading-signals.d.ts.map +1 -0
- package/dist/crownking/trading-signals.js +253 -0
- package/dist/crownking/trading-signals.js.map +1 -0
- package/dist/crownking/types.d.ts +3 -0
- package/dist/crownking/types.d.ts.map +1 -0
- package/dist/crownking/types.js +4 -0
- package/dist/crownking/types.js.map +1 -0
- package/dist/crownking/whale-tracker.d.ts +53 -0
- package/dist/crownking/whale-tracker.d.ts.map +1 -0
- package/dist/crownking/whale-tracker.js +188 -0
- package/dist/crownking/whale-tracker.js.map +1 -0
- package/dist/crownsk/agent-alliance.d.ts +49 -0
- package/dist/crownsk/agent-alliance.d.ts.map +1 -0
- package/dist/crownsk/agent-alliance.js +260 -0
- package/dist/crownsk/agent-alliance.js.map +1 -0
- package/dist/crownsk/agent.d.ts +77 -0
- package/dist/crownsk/agent.d.ts.map +1 -0
- package/dist/crownsk/agent.js +361 -0
- package/dist/crownsk/agent.js.map +1 -0
- package/dist/crownsk/auto-poster.d.ts +43 -0
- package/dist/crownsk/auto-poster.d.ts.map +1 -0
- package/dist/crownsk/auto-poster.js +179 -0
- package/dist/crownsk/auto-poster.js.map +1 -0
- package/dist/crownsk/contract.d.ts +62 -0
- package/dist/crownsk/contract.d.ts.map +1 -0
- package/dist/crownsk/contract.js +130 -0
- package/dist/crownsk/contract.js.map +1 -0
- package/dist/crownsk/copy-trader.d.ts +77 -0
- package/dist/crownsk/copy-trader.d.ts.map +1 -0
- package/dist/crownsk/copy-trader.js +265 -0
- package/dist/crownsk/copy-trader.js.map +1 -0
- package/dist/crownsk/index.d.ts +16 -0
- package/dist/crownsk/index.d.ts.map +1 -0
- package/dist/crownsk/index.js +18 -0
- package/dist/crownsk/index.js.map +1 -0
- package/dist/crownsk/leaderboard.d.ts +51 -0
- package/dist/crownsk/leaderboard.d.ts.map +1 -0
- package/dist/crownsk/leaderboard.js +213 -0
- package/dist/crownsk/leaderboard.js.map +1 -0
- package/dist/crownsk/live-scanner.d.ts +85 -0
- package/dist/crownsk/live-scanner.d.ts.map +1 -0
- package/dist/crownsk/live-scanner.js +345 -0
- package/dist/crownsk/live-scanner.js.map +1 -0
- package/dist/crownsk/momentum.d.ts +41 -0
- package/dist/crownsk/momentum.d.ts.map +1 -0
- package/dist/crownsk/momentum.js +251 -0
- package/dist/crownsk/momentum.js.map +1 -0
- package/dist/crownsk/personality.d.ts +77 -0
- package/dist/crownsk/personality.d.ts.map +1 -0
- package/dist/crownsk/personality.js +222 -0
- package/dist/crownsk/personality.js.map +1 -0
- package/dist/crownsk/portfolio.d.ts +62 -0
- package/dist/crownsk/portfolio.d.ts.map +1 -0
- package/dist/crownsk/portfolio.js +183 -0
- package/dist/crownsk/portfolio.js.map +1 -0
- package/dist/crownsk/sniper.d.ts +68 -0
- package/dist/crownsk/sniper.d.ts.map +1 -0
- package/dist/crownsk/sniper.js +264 -0
- package/dist/crownsk/sniper.js.map +1 -0
- package/dist/crownsk/social-graph.d.ts +72 -0
- package/dist/crownsk/social-graph.d.ts.map +1 -0
- package/dist/crownsk/social-graph.js +219 -0
- package/dist/crownsk/social-graph.js.map +1 -0
- package/dist/crownsk/trading-signals.d.ts +56 -0
- package/dist/crownsk/trading-signals.d.ts.map +1 -0
- package/dist/crownsk/trading-signals.js +253 -0
- package/dist/crownsk/trading-signals.js.map +1 -0
- package/dist/crownsk/types.d.ts +3 -0
- package/dist/crownsk/types.d.ts.map +1 -0
- package/dist/crownsk/types.js +4 -0
- package/dist/crownsk/types.js.map +1 -0
- package/dist/crownsk/whale-tracker.d.ts +53 -0
- package/dist/crownsk/whale-tracker.d.ts.map +1 -0
- package/dist/crownsk/whale-tracker.js +188 -0
- package/dist/crownsk/whale-tracker.js.map +1 -0
- package/dist/crownsk.d.ts +3 -0
- package/dist/crownsk.d.ts.map +1 -0
- package/dist/crownsk.js +1102 -0
- package/dist/crownsk.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/karma/agent.d.ts +81 -0
- package/dist/karma/agent.d.ts.map +1 -0
- package/dist/karma/agent.js +366 -0
- package/dist/karma/agent.js.map +1 -0
- package/dist/karma/contract.d.ts +62 -0
- package/dist/karma/contract.d.ts.map +1 -0
- package/dist/karma/contract.js +130 -0
- package/dist/karma/contract.js.map +1 -0
- package/dist/karma/index.d.ts +6 -0
- package/dist/karma/index.d.ts.map +1 -0
- package/dist/karma/index.js +7 -0
- package/dist/karma/index.js.map +1 -0
- package/dist/karma/live-scanner.d.ts +85 -0
- package/dist/karma/live-scanner.d.ts.map +1 -0
- package/dist/karma/live-scanner.js +345 -0
- package/dist/karma/live-scanner.js.map +1 -0
- package/dist/karma/social-graph.d.ts +72 -0
- package/dist/karma/social-graph.d.ts.map +1 -0
- package/dist/karma/social-graph.js +219 -0
- package/dist/karma/social-graph.js.map +1 -0
- package/dist/karma/trading-signals.d.ts +38 -0
- package/dist/karma/trading-signals.d.ts.map +1 -0
- package/dist/karma/trading-signals.js +291 -0
- package/dist/karma/trading-signals.js.map +1 -0
- package/dist/karma/types.d.ts +3 -0
- package/dist/karma/types.d.ts.map +1 -0
- package/dist/karma/types.js +4 -0
- package/dist/karma/types.js.map +1 -0
- package/dist/karma-king.d.ts +3 -0
- package/dist/karma-king.d.ts.map +1 -0
- package/dist/karma-king.js +580 -0
- package/dist/karma-king.js.map +1 -0
- package/dist/moltbook/client.d.ts +34 -0
- package/dist/moltbook/client.d.ts.map +1 -0
- package/dist/moltbook/client.js +280 -0
- package/dist/moltbook/client.js.map +1 -0
- package/dist/moltbook/index.d.ts +3 -0
- package/dist/moltbook/index.d.ts.map +1 -0
- package/dist/moltbook/index.js +4 -0
- package/dist/moltbook/index.js.map +1 -0
- package/dist/moltbook/types.d.ts +100 -0
- package/dist/moltbook/types.d.ts.map +1 -0
- package/dist/moltbook/types.js +3 -0
- package/dist/moltbook/types.js.map +1 -0
- package/dist/nadfun/abis.d.ts +403 -0
- package/dist/nadfun/abis.d.ts.map +1 -0
- package/dist/nadfun/abis.js +267 -0
- package/dist/nadfun/abis.js.map +1 -0
- package/dist/nadfun/client.d.ts +21 -0
- package/dist/nadfun/client.d.ts.map +1 -0
- package/dist/nadfun/client.js +349 -0
- package/dist/nadfun/client.js.map +1 -0
- package/dist/nadfun/index.d.ts +5 -0
- package/dist/nadfun/index.d.ts.map +1 -0
- package/dist/nadfun/index.js +5 -0
- package/dist/nadfun/index.js.map +1 -0
- package/dist/nadfun/types.d.ts +72 -0
- package/dist/nadfun/types.d.ts.map +1 -0
- package/dist/nadfun/types.js +2 -0
- package/dist/nadfun/types.js.map +1 -0
- package/dist/nadfun/websocket.d.ts +18 -0
- package/dist/nadfun/websocket.d.ts.map +1 -0
- package/dist/nadfun/websocket.js +110 -0
- package/dist/nadfun/websocket.js.map +1 -0
- package/dist/utils/format.d.ts +9 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +39 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +81 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wallet/manager.d.ts +76 -0
- package/dist/wallet/manager.d.ts.map +1 -0
- package/dist/wallet/manager.js +300 -0
- package/dist/wallet/manager.js.map +1 -0
- package/package.json +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TheCrownSK
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# 👑 TheCrownSK Trading Bot
|
|
2
|
+
|
|
3
|
+
**Autonomous AI Trading Agent for Monad Blockchain**
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/thecrownsk-bot)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
Built for **Moltiverse Hackathon 2026** | nad.fun Integration | Moltbook Social
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 🚀 Quick Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g thecrownsk-bot
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Or run directly with npx:
|
|
19
|
+
```bash
|
|
20
|
+
npx thecrownsk-bot
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## ✨ Features
|
|
26
|
+
|
|
27
|
+
| Feature | Description |
|
|
28
|
+
|---------|-------------|
|
|
29
|
+
| 🐋 **Whale Tracking** | Follow smart money movements in real-time |
|
|
30
|
+
| 🎯 **Token Sniping** | Detect and snipe new token launches |
|
|
31
|
+
| 📋 **Copy Trading** | Automatically copy successful wallets |
|
|
32
|
+
| 📊 **Momentum Detection** | Price and volume momentum analysis |
|
|
33
|
+
| 🤖 **Auto-Posting** | Automated Moltbook social engagement |
|
|
34
|
+
| 🤝 **Agent Alliances** | Coordinate with other AI agents |
|
|
35
|
+
| 🏆 **Leaderboard** | Track your ranking vs other agents |
|
|
36
|
+
| 💼 **Portfolio Tracking** | P&L and trade history |
|
|
37
|
+
| 🔒 **Secure Wallet** | AES-256 encrypted private key storage |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 📦 Installation
|
|
42
|
+
|
|
43
|
+
### Option 1: NPM Global Install (Recommended)
|
|
44
|
+
```bash
|
|
45
|
+
npm install -g thecrownsk-bot
|
|
46
|
+
thecrownsk
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Option 2: NPX (No Install)
|
|
50
|
+
```bash
|
|
51
|
+
npx thecrownsk-bot
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Option 3: Clone Repository
|
|
55
|
+
```bash
|
|
56
|
+
git clone https://github.com/soloking/thecrownsk-bot.git
|
|
57
|
+
cd thecrownsk-bot
|
|
58
|
+
npm install
|
|
59
|
+
npm run build
|
|
60
|
+
npm start
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 🔧 Setup Guide
|
|
66
|
+
|
|
67
|
+
### Step 1: Start the Bot
|
|
68
|
+
```bash
|
|
69
|
+
thecrownsk
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Step 2: Configure Your Wallet
|
|
73
|
+
```
|
|
74
|
+
wallet set
|
|
75
|
+
```
|
|
76
|
+
- Enter your Monad private key
|
|
77
|
+
- Create a secure password
|
|
78
|
+
- Your key is encrypted locally at `~/.thecrownsk/wallet.enc`
|
|
79
|
+
|
|
80
|
+
### Step 3: Register on Moltbook
|
|
81
|
+
```
|
|
82
|
+
register
|
|
83
|
+
```
|
|
84
|
+
- Enter your agent name
|
|
85
|
+
- Save the **Claim URL** provided
|
|
86
|
+
- Tweet to verify ownership
|
|
87
|
+
|
|
88
|
+
### Step 4: Start Trading
|
|
89
|
+
```
|
|
90
|
+
start
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 📋 Commands Reference
|
|
96
|
+
|
|
97
|
+
### 💰 Trading
|
|
98
|
+
| Command | Description |
|
|
99
|
+
|---------|-------------|
|
|
100
|
+
| `tokens` | View top tokens by market cap |
|
|
101
|
+
| `new` | View newest tokens on nad.fun |
|
|
102
|
+
| `analyze <token>` | Deep analysis of a token |
|
|
103
|
+
| `momentum <token>` | Price & volume momentum |
|
|
104
|
+
| `quote <token>` | Get price quotes |
|
|
105
|
+
| `buy <token> <amount>` | Buy tokens with MON |
|
|
106
|
+
| `sell <token> <amount>` | Sell tokens for MON |
|
|
107
|
+
|
|
108
|
+
### 🎯 Sniping
|
|
109
|
+
| Command | Description |
|
|
110
|
+
|---------|-------------|
|
|
111
|
+
| `snipe scan` | Scan for new token launches |
|
|
112
|
+
| `snipe watch` | Start real-time token watcher |
|
|
113
|
+
| `snipe stop` | Stop token watcher |
|
|
114
|
+
| `snipe auto on/off` | Toggle auto-snipe |
|
|
115
|
+
|
|
116
|
+
### 🐋 Whale Tracking
|
|
117
|
+
| Command | Description |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| `whales` | Show top whales |
|
|
120
|
+
| `whales scan` | Scan for whale activity |
|
|
121
|
+
| `whales tokens` | Tokens whales are buying |
|
|
122
|
+
|
|
123
|
+
### 📋 Copy Trading
|
|
124
|
+
| Command | Description |
|
|
125
|
+
|---------|-------------|
|
|
126
|
+
| `copy` | Copy trading status |
|
|
127
|
+
| `copy add <addr> <name>` | Add wallet to copy |
|
|
128
|
+
| `copy start` | Start copy trading |
|
|
129
|
+
| `copy stop` | Stop copy trading |
|
|
130
|
+
|
|
131
|
+
### 👛 Wallet Management
|
|
132
|
+
| Command | Description |
|
|
133
|
+
|---------|-------------|
|
|
134
|
+
| `wallet` | Show current wallet |
|
|
135
|
+
| `wallet set` | Add/change private key |
|
|
136
|
+
| `wallet unlock` | Unlock saved wallet |
|
|
137
|
+
| `wallet remove` | Remove saved wallet |
|
|
138
|
+
| `wallet password` | Change password |
|
|
139
|
+
| `balance` | Check MON balance |
|
|
140
|
+
|
|
141
|
+
### 🤖 Moltbook Social
|
|
142
|
+
| Command | Description |
|
|
143
|
+
|---------|-------------|
|
|
144
|
+
| `register` | Register agent on Moltbook |
|
|
145
|
+
| `me` | Your agent info |
|
|
146
|
+
| `feed` | View recent feed |
|
|
147
|
+
| `post <submolt> <message>` | Create a post |
|
|
148
|
+
| `gm` | Post good morning |
|
|
149
|
+
| `gn` | Post good night |
|
|
150
|
+
|
|
151
|
+
### 🤝 Alliances
|
|
152
|
+
| Command | Description |
|
|
153
|
+
|---------|-------------|
|
|
154
|
+
| `allies` | Alliance stats |
|
|
155
|
+
| `allies discover` | Find potential allies |
|
|
156
|
+
| `allies run` | Engage with allies |
|
|
157
|
+
|
|
158
|
+
### 📊 Status & Analytics
|
|
159
|
+
| Command | Description |
|
|
160
|
+
|---------|-------------|
|
|
161
|
+
| `status` | Full bot status |
|
|
162
|
+
| `portfolio` | Portfolio summary |
|
|
163
|
+
| `pnl` | Profit & Loss stats |
|
|
164
|
+
| `history` | Trade history |
|
|
165
|
+
| `leaderboard` | Your ranking |
|
|
166
|
+
| `scan` | Scan for signals |
|
|
167
|
+
| `signals` | View current signals |
|
|
168
|
+
|
|
169
|
+
### ⚙️ Control
|
|
170
|
+
| Command | Description |
|
|
171
|
+
|---------|-------------|
|
|
172
|
+
| `start` | Start autonomous mode |
|
|
173
|
+
| `stop` | Stop autonomous mode |
|
|
174
|
+
| `help` | Show all commands |
|
|
175
|
+
| `exit` | Exit the bot |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 🔒 Security
|
|
180
|
+
|
|
181
|
+
Your private keys are protected with industry-standard encryption:
|
|
182
|
+
|
|
183
|
+
- **AES-256-GCM** encryption
|
|
184
|
+
- **PBKDF2** key derivation (100,000 iterations)
|
|
185
|
+
- **Secure file permissions** (owner-only)
|
|
186
|
+
- **Automatic log redaction** of sensitive data
|
|
187
|
+
|
|
188
|
+
Wallet storage: `~/.thecrownsk/wallet.enc`
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## ⚙️ Environment Variables (Optional)
|
|
193
|
+
|
|
194
|
+
Create a `.env` file for custom configuration:
|
|
195
|
+
|
|
196
|
+
```env
|
|
197
|
+
MONAD_RPC_URL=https://rpc.monad.xyz
|
|
198
|
+
MONAD_RPC_URL_BACKUP=https://rpc2.monad.xyz
|
|
199
|
+
LOG_LEVEL=info
|
|
200
|
+
AGENT_NAME=MyAgent
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 🏗️ For Developers
|
|
206
|
+
|
|
207
|
+
### Build from Source
|
|
208
|
+
```bash
|
|
209
|
+
git clone https://github.com/soloking/thecrownsk-bot.git
|
|
210
|
+
cd thecrownsk-bot
|
|
211
|
+
npm install
|
|
212
|
+
npm run build
|
|
213
|
+
npm start
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Project Structure
|
|
217
|
+
```
|
|
218
|
+
src/
|
|
219
|
+
├── crownsk.ts # Main CLI entry point
|
|
220
|
+
├── crownsk/ # Core trading modules
|
|
221
|
+
│ ├── agent.ts # Autonomous agent loop
|
|
222
|
+
│ ├── whale-tracker.ts # Whale tracking
|
|
223
|
+
│ ├── sniper.ts # Token sniping
|
|
224
|
+
│ ├── copy-trader.ts # Copy trading
|
|
225
|
+
│ ├── momentum.ts # Momentum analysis
|
|
226
|
+
│ ├── portfolio.ts # Portfolio tracking
|
|
227
|
+
│ └── ...
|
|
228
|
+
├── wallet/ # Secure wallet management
|
|
229
|
+
├── nadfun/ # nad.fun DEX integration
|
|
230
|
+
├── moltbook/ # Moltbook API client
|
|
231
|
+
└── blockchain/ # Monad blockchain client
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 🎯 Moltiverse Hackathon 2026
|
|
237
|
+
|
|
238
|
+
This bot was built for the Moltiverse Hackathon:
|
|
239
|
+
|
|
240
|
+
- **Track:** Agent + Token
|
|
241
|
+
- **Prize Pool:** $200K+
|
|
242
|
+
- **Dates:** Feb 2-18, 2026
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## ⚠️ Disclaimer
|
|
247
|
+
|
|
248
|
+
This bot is for educational and experimental purposes. Cryptocurrency trading involves substantial risk of loss. Never invest more than you can afford to lose. This software is not financial advice.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 🤝 Contributing
|
|
253
|
+
|
|
254
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 📜 License
|
|
259
|
+
|
|
260
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## 👑 Created by TheCrownSK
|
|
265
|
+
|
|
266
|
+
*The crown sees all. Fortune favors the crowned.*
|
|
267
|
+
|
|
268
|
+
**Twitter:** [@lord_soloking](https://twitter.com/lord_soloking)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const monad: {
|
|
2
|
+
blockExplorers: {
|
|
3
|
+
readonly default: {
|
|
4
|
+
readonly name: "MonadVision";
|
|
5
|
+
readonly url: "https://monadvision.com";
|
|
6
|
+
};
|
|
7
|
+
readonly monadScan: {
|
|
8
|
+
readonly name: "MonadScan";
|
|
9
|
+
readonly url: "https://monadscan.com";
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
blockTime?: number | undefined | undefined;
|
|
13
|
+
contracts: {
|
|
14
|
+
readonly multicall3: {
|
|
15
|
+
readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
ensTlds?: readonly string[] | undefined;
|
|
19
|
+
id: 143;
|
|
20
|
+
name: "Monad";
|
|
21
|
+
nativeCurrency: {
|
|
22
|
+
readonly name: "MON";
|
|
23
|
+
readonly symbol: "MON";
|
|
24
|
+
readonly decimals: 18;
|
|
25
|
+
};
|
|
26
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
|
27
|
+
rpcUrls: {
|
|
28
|
+
readonly default: {
|
|
29
|
+
readonly http: readonly ["https://rpc.monad.xyz"];
|
|
30
|
+
readonly webSocket: readonly ["wss://rpc.monad.xyz"];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
sourceId?: number | undefined | undefined;
|
|
34
|
+
testnet?: boolean | undefined | undefined;
|
|
35
|
+
custom?: Record<string, unknown> | undefined;
|
|
36
|
+
extendSchema?: Record<string, unknown> | undefined;
|
|
37
|
+
fees?: import("viem").ChainFees<undefined> | undefined;
|
|
38
|
+
formatters?: undefined;
|
|
39
|
+
prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
|
|
40
|
+
phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
|
|
41
|
+
}) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
|
|
42
|
+
phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
|
|
43
|
+
}) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
|
|
44
|
+
runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
|
|
45
|
+
}] | undefined;
|
|
46
|
+
serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
|
|
47
|
+
verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/blockchain/chain.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BhB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { defineChain } from 'viem';
|
|
2
|
+
// Monad Mainnet Chain Definition
|
|
3
|
+
export const monad = defineChain({
|
|
4
|
+
id: 143,
|
|
5
|
+
name: 'Monad',
|
|
6
|
+
nativeCurrency: {
|
|
7
|
+
name: 'MON',
|
|
8
|
+
symbol: 'MON',
|
|
9
|
+
decimals: 18,
|
|
10
|
+
},
|
|
11
|
+
rpcUrls: {
|
|
12
|
+
default: {
|
|
13
|
+
http: ['https://rpc.monad.xyz'],
|
|
14
|
+
webSocket: ['wss://rpc.monad.xyz'],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
blockExplorers: {
|
|
18
|
+
default: {
|
|
19
|
+
name: 'MonadVision',
|
|
20
|
+
url: 'https://monadvision.com',
|
|
21
|
+
},
|
|
22
|
+
monadScan: {
|
|
23
|
+
name: 'MonadScan',
|
|
24
|
+
url: 'https://monadscan.com',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
contracts: {
|
|
28
|
+
multicall3: {
|
|
29
|
+
address: '0xcA11bde05977b3631167028862bE2a173976CA11',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/blockchain/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,iCAAiC;AACjC,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE;KACb;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,SAAS,EAAE,CAAC,qBAAqB,CAAC;SACnC;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,yBAAyB;SAC/B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,uBAAuB;SAC7B;KACF;IACD,SAAS,EAAE;QACT,UAAU,EAAE;YACV,OAAO,EAAE,4CAA4C;SACtD;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type PublicClient, type WalletClient, type Transport, type Chain, type Account } from 'viem';
|
|
2
|
+
export declare function getPublicClient(): PublicClient<Transport, Chain>;
|
|
3
|
+
/**
|
|
4
|
+
* Reset wallet client (call after loading new wallet)
|
|
5
|
+
*/
|
|
6
|
+
export declare function resetWalletClient(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Get wallet client using the currently loaded wallet
|
|
9
|
+
*/
|
|
10
|
+
export declare function getWalletClient(): WalletClient<Transport, Chain, Account>;
|
|
11
|
+
/**
|
|
12
|
+
* Check if wallet is available
|
|
13
|
+
*/
|
|
14
|
+
export declare function hasWallet(): boolean;
|
|
15
|
+
export declare function getAccount(): Account;
|
|
16
|
+
export declare function getWebSocketClient(): PublicClient<Transport, Chain>;
|
|
17
|
+
export declare function getBalance(): Promise<bigint>;
|
|
18
|
+
export declare function waitForTransaction(hash: `0x${string}`): Promise<import("viem").TransactionReceipt>;
|
|
19
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/blockchain/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,OAAO,EAEb,MAAM,MAAM,CAAC;AAUd,wBAAgB,eAAe,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAmBhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAoDzE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAKnE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAQlD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,8CAM3D"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { createPublicClient, createWalletClient, http, webSocket, fallback, } from 'viem';
|
|
2
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
|
+
import { monad } from './chain.js';
|
|
4
|
+
import { env } from '../config/env.js';
|
|
5
|
+
import { WS_URL } from '../config/constants.js';
|
|
6
|
+
import { getCurrentPrivateKey } from '../wallet/manager.js';
|
|
7
|
+
let publicClient = null;
|
|
8
|
+
let walletClient = null;
|
|
9
|
+
export function getPublicClient() {
|
|
10
|
+
if (!publicClient) {
|
|
11
|
+
publicClient = createPublicClient({
|
|
12
|
+
chain: monad,
|
|
13
|
+
transport: fallback([
|
|
14
|
+
http(env.MONAD_RPC_URL, {
|
|
15
|
+
batch: { wait: 50 },
|
|
16
|
+
retryCount: 3,
|
|
17
|
+
retryDelay: 150,
|
|
18
|
+
}),
|
|
19
|
+
http(env.MONAD_RPC_URL_BACKUP, {
|
|
20
|
+
batch: { wait: 50 },
|
|
21
|
+
retryCount: 3,
|
|
22
|
+
retryDelay: 150,
|
|
23
|
+
}),
|
|
24
|
+
]),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return publicClient;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reset wallet client (call after loading new wallet)
|
|
31
|
+
*/
|
|
32
|
+
export function resetWalletClient() {
|
|
33
|
+
walletClient = null;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get wallet client using the currently loaded wallet
|
|
37
|
+
*/
|
|
38
|
+
export function getWalletClient() {
|
|
39
|
+
// Try to use wallet from manager first
|
|
40
|
+
const privateKey = getCurrentPrivateKey();
|
|
41
|
+
if (privateKey) {
|
|
42
|
+
// Rebuild wallet client if private key changed
|
|
43
|
+
const account = privateKeyToAccount(privateKey);
|
|
44
|
+
if (!walletClient || walletClient.account.address !== account.address) {
|
|
45
|
+
walletClient = createWalletClient({
|
|
46
|
+
account,
|
|
47
|
+
chain: monad,
|
|
48
|
+
transport: fallback([
|
|
49
|
+
http(env.MONAD_RPC_URL, {
|
|
50
|
+
retryCount: 3,
|
|
51
|
+
retryDelay: 150,
|
|
52
|
+
}),
|
|
53
|
+
http(env.MONAD_RPC_URL_BACKUP, {
|
|
54
|
+
retryCount: 3,
|
|
55
|
+
retryDelay: 150,
|
|
56
|
+
}),
|
|
57
|
+
]),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return walletClient;
|
|
61
|
+
}
|
|
62
|
+
// Fallback to env variable (backward compatibility)
|
|
63
|
+
if (env.AGENT_PRIVATE_KEY && env.AGENT_PRIVATE_KEY !== '0x') {
|
|
64
|
+
if (!walletClient) {
|
|
65
|
+
const account = privateKeyToAccount(env.AGENT_PRIVATE_KEY);
|
|
66
|
+
walletClient = createWalletClient({
|
|
67
|
+
account,
|
|
68
|
+
chain: monad,
|
|
69
|
+
transport: fallback([
|
|
70
|
+
http(env.MONAD_RPC_URL, {
|
|
71
|
+
retryCount: 3,
|
|
72
|
+
retryDelay: 150,
|
|
73
|
+
}),
|
|
74
|
+
http(env.MONAD_RPC_URL_BACKUP, {
|
|
75
|
+
retryCount: 3,
|
|
76
|
+
retryDelay: 150,
|
|
77
|
+
}),
|
|
78
|
+
]),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return walletClient;
|
|
82
|
+
}
|
|
83
|
+
throw new Error('No wallet loaded. Use "wallet set" to add your private key or "wallet unlock" to unlock existing wallet.');
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check if wallet is available
|
|
87
|
+
*/
|
|
88
|
+
export function hasWallet() {
|
|
89
|
+
const privateKey = getCurrentPrivateKey();
|
|
90
|
+
if (privateKey)
|
|
91
|
+
return true;
|
|
92
|
+
if (env.AGENT_PRIVATE_KEY && env.AGENT_PRIVATE_KEY !== '0x')
|
|
93
|
+
return true;
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
export function getAccount() {
|
|
97
|
+
const client = getWalletClient();
|
|
98
|
+
return client.account;
|
|
99
|
+
}
|
|
100
|
+
export function getWebSocketClient() {
|
|
101
|
+
return createPublicClient({
|
|
102
|
+
chain: monad,
|
|
103
|
+
transport: webSocket(WS_URL),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
export async function getBalance() {
|
|
107
|
+
if (!hasWallet()) {
|
|
108
|
+
return 0n;
|
|
109
|
+
}
|
|
110
|
+
const client = getPublicClient();
|
|
111
|
+
const account = getAccount();
|
|
112
|
+
return client.getBalance({ address: account.address });
|
|
113
|
+
}
|
|
114
|
+
export async function waitForTransaction(hash) {
|
|
115
|
+
const client = getPublicClient();
|
|
116
|
+
return client.waitForTransactionReceipt({
|
|
117
|
+
hash,
|
|
118
|
+
confirmations: 1,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/blockchain/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const NADFUN_CONTRACTS: {
|
|
2
|
+
readonly WMON: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A";
|
|
3
|
+
readonly BONDING_CURVE_ROUTER: "0x6F6B8F1a20703309951a5127c45B49b1CD981A22";
|
|
4
|
+
readonly BONDING_CURVE: "0xA7283d07812a02AFB7C09B60f8896bCEA3F90aCE";
|
|
5
|
+
readonly LENS: "0x7e78A8DE94f21804F7a17F4E8BF9EC2c872187ea";
|
|
6
|
+
readonly DEX_ROUTER: "0x0B79d71AE99528D1dB24A4148b5f4F865cc2b137";
|
|
7
|
+
readonly DEX_FACTORY: "0x6B5F564339DbAD6b780249827f2198a841FEB7F3";
|
|
8
|
+
};
|
|
9
|
+
export declare const MONAD_CONTRACTS: {
|
|
10
|
+
readonly WMON: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A";
|
|
11
|
+
readonly MULTICALL3: "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
12
|
+
readonly PERMIT2: "0x000000000022d473030f116ddee9f6b43ac78ba3";
|
|
13
|
+
readonly ENTRYPOINT_V07: "0x0000000071727De22E5E9d8BAf0edAc6f37da032";
|
|
14
|
+
};
|
|
15
|
+
export declare const RPC_URL: string;
|
|
16
|
+
export declare const RPC_URL_BACKUP: string;
|
|
17
|
+
export declare const WS_URL = "wss://rpc.monad.xyz";
|
|
18
|
+
export declare const CHAIN_ID = 143;
|
|
19
|
+
export declare const NADFUN_API_BASE = "https://api.nadapp.net";
|
|
20
|
+
export declare const NADFUN_ENDPOINTS: {
|
|
21
|
+
readonly TOKENS_BY_CREATION: "/order/creation_time";
|
|
22
|
+
readonly TOKENS_BY_MARKET_CAP: "/order/market_cap";
|
|
23
|
+
readonly TOKENS_BY_LAST_REPLY: "/order/last_reply";
|
|
24
|
+
readonly TOKENS_GRADUATED: "/token/graduated";
|
|
25
|
+
readonly TOKEN_MARKET: "/token/market";
|
|
26
|
+
readonly TOKEN_INFO: "/token/info";
|
|
27
|
+
readonly METADATA_IMAGE: "/metadata/image";
|
|
28
|
+
readonly METADATA_UPLOAD: "/metadata/metadata";
|
|
29
|
+
readonly TOKEN_SALT: "/token/salt";
|
|
30
|
+
};
|
|
31
|
+
export declare const GAS_CONFIG: {
|
|
32
|
+
readonly GAS_PRICE: bigint;
|
|
33
|
+
readonly MAX_PRIORITY_FEE: bigint;
|
|
34
|
+
};
|
|
35
|
+
export declare const BONDING_CURVE_CONFIG: {
|
|
36
|
+
readonly VIRTUAL_MON_RESERVE: bigint;
|
|
37
|
+
readonly VIRTUAL_TOKEN_RESERVE: bigint;
|
|
38
|
+
readonly GRADUATION_TOKENS: bigint;
|
|
39
|
+
readonly DEPLOY_FEE: bigint;
|
|
40
|
+
readonly GRADUATION_FEE: bigint;
|
|
41
|
+
};
|
|
42
|
+
export declare const RPC_RATE_LIMITS: {
|
|
43
|
+
readonly PRIMARY: {
|
|
44
|
+
readonly requests: 25;
|
|
45
|
+
readonly perSeconds: 1;
|
|
46
|
+
};
|
|
47
|
+
readonly BACKUP: {
|
|
48
|
+
readonly requests: 300;
|
|
49
|
+
readonly perSeconds: 10;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export declare const getCurrentNetwork: () => string;
|
|
53
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAGX,eAAO,MAAM,OAAO,QAAuD,CAAC;AAC5E,eAAO,MAAM,cAAc,QAA+D,CAAC;AAC3F,eAAO,MAAM,MAAM,wBAAwB,CAAC;AAG5C,eAAO,MAAM,QAAQ,MAAM,CAAC;AAG5B,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAGxD,eAAO,MAAM,gBAAgB;;;;;;;;;;CAenB,CAAC;AAGX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAGX,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC;AAGX,eAAO,MAAM,eAAe;;;;;;;;;CAGlB,CAAC;AAGX,eAAO,MAAM,iBAAiB,QAAO,MAAmB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Monad Mainnet Configuration
|
|
2
|
+
// KarmaKing Trading Bot for nad.fun
|
|
3
|
+
// Mainnet contract addresses
|
|
4
|
+
export const NADFUN_CONTRACTS = {
|
|
5
|
+
WMON: '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A',
|
|
6
|
+
BONDING_CURVE_ROUTER: '0x6F6B8F1a20703309951a5127c45B49b1CD981A22',
|
|
7
|
+
BONDING_CURVE: '0xA7283d07812a02AFB7C09B60f8896bCEA3F90aCE',
|
|
8
|
+
LENS: '0x7e78A8DE94f21804F7a17F4E8BF9EC2c872187ea',
|
|
9
|
+
DEX_ROUTER: '0x0B79d71AE99528D1dB24A4148b5f4F865cc2b137',
|
|
10
|
+
DEX_FACTORY: '0x6B5F564339DbAD6b780249827f2198a841FEB7F3',
|
|
11
|
+
};
|
|
12
|
+
export const MONAD_CONTRACTS = {
|
|
13
|
+
WMON: NADFUN_CONTRACTS.WMON,
|
|
14
|
+
MULTICALL3: '0xcA11bde05977b3631167028862bE2a173976CA11',
|
|
15
|
+
PERMIT2: '0x000000000022d473030f116ddee9f6b43ac78ba3',
|
|
16
|
+
ENTRYPOINT_V07: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
|
|
17
|
+
};
|
|
18
|
+
// RPC URLs
|
|
19
|
+
export const RPC_URL = process.env.MONAD_RPC_URL || 'https://rpc.monad.xyz';
|
|
20
|
+
export const RPC_URL_BACKUP = process.env.MONAD_RPC_URL_BACKUP || 'https://rpc2.monad.xyz';
|
|
21
|
+
export const WS_URL = 'wss://rpc.monad.xyz';
|
|
22
|
+
// Chain ID
|
|
23
|
+
export const CHAIN_ID = 143; // Monad Mainnet
|
|
24
|
+
// nad.fun API
|
|
25
|
+
export const NADFUN_API_BASE = 'https://api.nadapp.net';
|
|
26
|
+
// API endpoints
|
|
27
|
+
export const NADFUN_ENDPOINTS = {
|
|
28
|
+
// Token listing
|
|
29
|
+
TOKENS_BY_CREATION: '/order/creation_time',
|
|
30
|
+
TOKENS_BY_MARKET_CAP: '/order/market_cap',
|
|
31
|
+
TOKENS_BY_LAST_REPLY: '/order/last_reply',
|
|
32
|
+
TOKENS_GRADUATED: '/token/graduated',
|
|
33
|
+
// Token details
|
|
34
|
+
TOKEN_MARKET: '/token/market',
|
|
35
|
+
TOKEN_INFO: '/token/info',
|
|
36
|
+
// Token creation
|
|
37
|
+
METADATA_IMAGE: '/metadata/image',
|
|
38
|
+
METADATA_UPLOAD: '/metadata/metadata',
|
|
39
|
+
TOKEN_SALT: '/token/salt',
|
|
40
|
+
};
|
|
41
|
+
// Gas configuration
|
|
42
|
+
export const GAS_CONFIG = {
|
|
43
|
+
GAS_PRICE: 52n * 10n ** 9n, // 52 gwei
|
|
44
|
+
MAX_PRIORITY_FEE: 2n * 10n ** 9n, // 2 gwei
|
|
45
|
+
};
|
|
46
|
+
// Bonding curve parameters
|
|
47
|
+
export const BONDING_CURVE_CONFIG = {
|
|
48
|
+
VIRTUAL_MON_RESERVE: 90000n * 10n ** 18n,
|
|
49
|
+
VIRTUAL_TOKEN_RESERVE: 1073000191n * 10n ** 18n,
|
|
50
|
+
GRADUATION_TOKENS: 279900191n * 10n ** 18n,
|
|
51
|
+
DEPLOY_FEE: 10n * 10n ** 18n, // 10 MON
|
|
52
|
+
GRADUATION_FEE: 3000n * 10n ** 18n, // 3000 MON
|
|
53
|
+
};
|
|
54
|
+
// RPC rate limits
|
|
55
|
+
export const RPC_RATE_LIMITS = {
|
|
56
|
+
PRIMARY: { requests: 25, perSeconds: 1 },
|
|
57
|
+
BACKUP: { requests: 300, perSeconds: 10 },
|
|
58
|
+
};
|
|
59
|
+
// Network helper (always mainnet)
|
|
60
|
+
export const getCurrentNetwork = () => 'mainnet';
|
|
61
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,oCAAoC;AAEpC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,4CAA4C;IAClD,oBAAoB,EAAE,4CAA4C;IAClE,aAAa,EAAE,4CAA4C;IAC3D,IAAI,EAAE,4CAA4C;IAClD,UAAU,EAAE,4CAA4C;IACxD,WAAW,EAAE,4CAA4C;CACjD,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,gBAAgB,CAAC,IAAI;IAC3B,UAAU,EAAE,4CAA4C;IACxD,OAAO,EAAE,4CAA4C;IACrD,cAAc,EAAE,4CAA4C;CACpD,CAAC;AAEX,WAAW;AACX,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAC;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,wBAAwB,CAAC;AAC3F,MAAM,CAAC,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAE5C,WAAW;AACX,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,gBAAgB;AAE7C,cAAc;AACd,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,gBAAgB;IAChB,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,mBAAmB;IACzC,gBAAgB,EAAE,kBAAkB;IAEpC,gBAAgB;IAChB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IAEzB,iBAAiB;IACjB,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,aAAa;CACjB,CAAC;AAEX,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,UAAU;IACtC,gBAAgB,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,SAAS;CACnC,CAAC;AAEX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,mBAAmB,EAAE,MAAO,GAAG,GAAG,IAAI,GAAG;IACzC,qBAAqB,EAAE,WAAc,GAAG,GAAG,IAAI,GAAG;IAClD,iBAAiB,EAAE,UAAY,GAAG,GAAG,IAAI,GAAG;IAC5C,UAAU,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,SAAS;IACvC,cAAc,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,WAAW;CACvC,CAAC;AAEX,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IACxC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE;CACjC,CAAC;AAEX,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE,CAAC,SAAS,CAAC"}
|