@clawnch/clawncher-sdk 0.1.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.
Files changed (98) hide show
  1. package/README.md +603 -0
  2. package/dist/abis.d.ts +935 -0
  3. package/dist/abis.d.ts.map +1 -0
  4. package/dist/abis.js +486 -0
  5. package/dist/abis.js.map +1 -0
  6. package/dist/addresses.d.ts +51 -0
  7. package/dist/addresses.d.ts.map +1 -0
  8. package/dist/addresses.js +80 -0
  9. package/dist/addresses.js.map +1 -0
  10. package/dist/api-deployer-types.d.ts +165 -0
  11. package/dist/api-deployer-types.d.ts.map +1 -0
  12. package/dist/api-deployer-types.js +9 -0
  13. package/dist/api-deployer-types.js.map +1 -0
  14. package/dist/api-deployer.d.ts +114 -0
  15. package/dist/api-deployer.d.ts.map +1 -0
  16. package/dist/api-deployer.js +309 -0
  17. package/dist/api-deployer.js.map +1 -0
  18. package/dist/claimer.d.ts +197 -0
  19. package/dist/claimer.d.ts.map +1 -0
  20. package/dist/claimer.js +311 -0
  21. package/dist/claimer.js.map +1 -0
  22. package/dist/deployer.d.ts +229 -0
  23. package/dist/deployer.d.ts.map +1 -0
  24. package/dist/deployer.js +305 -0
  25. package/dist/deployer.js.map +1 -0
  26. package/dist/erc8004-types.d.ts +94 -0
  27. package/dist/erc8004-types.d.ts.map +1 -0
  28. package/dist/erc8004-types.js +8 -0
  29. package/dist/erc8004-types.js.map +1 -0
  30. package/dist/errors.d.ts +62 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +75 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/index.d.ts +204 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +358 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/liquidity-types.d.ts +198 -0
  39. package/dist/liquidity-types.d.ts.map +1 -0
  40. package/dist/liquidity-types.js +8 -0
  41. package/dist/liquidity-types.js.map +1 -0
  42. package/dist/liquidity.d.ts +111 -0
  43. package/dist/liquidity.d.ts.map +1 -0
  44. package/dist/liquidity.js +608 -0
  45. package/dist/liquidity.js.map +1 -0
  46. package/dist/molten-types.d.ts +282 -0
  47. package/dist/molten-types.d.ts.map +1 -0
  48. package/dist/molten-types.js +8 -0
  49. package/dist/molten-types.js.map +1 -0
  50. package/dist/molten.d.ts +336 -0
  51. package/dist/molten.d.ts.map +1 -0
  52. package/dist/molten.js +560 -0
  53. package/dist/molten.js.map +1 -0
  54. package/dist/portfolio.d.ts +129 -0
  55. package/dist/portfolio.d.ts.map +1 -0
  56. package/dist/portfolio.js +218 -0
  57. package/dist/portfolio.js.map +1 -0
  58. package/dist/reader.d.ts +249 -0
  59. package/dist/reader.d.ts.map +1 -0
  60. package/dist/reader.js +488 -0
  61. package/dist/reader.js.map +1 -0
  62. package/dist/swap-types.d.ts +159 -0
  63. package/dist/swap-types.d.ts.map +1 -0
  64. package/dist/swap-types.js +22 -0
  65. package/dist/swap-types.js.map +1 -0
  66. package/dist/swap.d.ts +762 -0
  67. package/dist/swap.d.ts.map +1 -0
  68. package/dist/swap.js +345 -0
  69. package/dist/swap.js.map +1 -0
  70. package/dist/token-verification-data.d.ts +4 -0
  71. package/dist/token-verification-data.d.ts.map +1 -0
  72. package/dist/token-verification-data.js +6 -0
  73. package/dist/token-verification-data.js.map +1 -0
  74. package/dist/types.d.ts +244 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +5 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/uniswap-abis.d.ts +470 -0
  79. package/dist/uniswap-abis.d.ts.map +1 -0
  80. package/dist/uniswap-abis.js +322 -0
  81. package/dist/uniswap-abis.js.map +1 -0
  82. package/dist/uniswap-addresses.d.ts +38 -0
  83. package/dist/uniswap-addresses.d.ts.map +1 -0
  84. package/dist/uniswap-addresses.js +67 -0
  85. package/dist/uniswap-addresses.js.map +1 -0
  86. package/dist/vanity.d.ts +115 -0
  87. package/dist/vanity.d.ts.map +1 -0
  88. package/dist/vanity.js +166 -0
  89. package/dist/vanity.js.map +1 -0
  90. package/dist/verify.d.ts +88 -0
  91. package/dist/verify.d.ts.map +1 -0
  92. package/dist/verify.js +181 -0
  93. package/dist/verify.js.map +1 -0
  94. package/dist/watcher.d.ts +112 -0
  95. package/dist/watcher.d.ts.map +1 -0
  96. package/dist/watcher.js +132 -0
  97. package/dist/watcher.js.map +1 -0
  98. package/package.json +59 -0
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Molten Integration Types
3
+ *
4
+ * Types for agent-to-agent intent matching protocol.
5
+ * Molten connects agents that have complementary needs and capabilities.
6
+ */
7
+ export type IntentType = 'offer' | 'request';
8
+ export type IntentStatus = 'active' | 'paused' | 'matched' | 'cancelled';
9
+ export type MatchStatus = 'pending' | 'accepted' | 'rejected' | 'expired';
10
+ export type NotificationChannel = 'telegram' | 'webhook' | 'polling';
11
+ /**
12
+ * Clawnch-specific intent categories for finance/token operations
13
+ */
14
+ export type ClawnchIntentCategory = 'token-marketing' | 'liquidity' | 'dev-services' | 'community' | 'collaboration';
15
+ /**
16
+ * Generic intent category for non-Clawnch use cases
17
+ */
18
+ export type GenericIntentCategory = string;
19
+ export type IntentCategory = ClawnchIntentCategory | GenericIntentCategory;
20
+ export interface MoltenRegistration {
21
+ /** Agent display name */
22
+ name: string;
23
+ /** Brief description of agent's capabilities/purpose */
24
+ description: string;
25
+ /** Contact methods for matches */
26
+ contact: {
27
+ telegram?: string;
28
+ email?: string;
29
+ webhookUrl?: string;
30
+ };
31
+ /** Optional: Wallet address for reputation/staking */
32
+ wallet?: string;
33
+ /** Optional: Tags for discovery */
34
+ tags?: string[];
35
+ }
36
+ export interface MoltenAgent {
37
+ id: string;
38
+ name: string;
39
+ description: string;
40
+ contact: {
41
+ telegram?: string;
42
+ email?: string;
43
+ webhookUrl?: string;
44
+ };
45
+ wallet?: string;
46
+ tags: string[];
47
+ clawRankScore: number;
48
+ registeredAt: string;
49
+ apiKey: string;
50
+ }
51
+ export interface MoltenStatus {
52
+ id: string;
53
+ name: string;
54
+ clawRankScore: number;
55
+ activeIntents: number;
56
+ totalMatches: number;
57
+ acceptedMatches: number;
58
+ registeredAt: string;
59
+ }
60
+ export interface CreateIntentRequest {
61
+ /** Type of intent: offer or request */
62
+ type: IntentType;
63
+ /** Category (use ClawnchIntentCategory for finance/token operations) */
64
+ category: IntentCategory;
65
+ /** Title/summary of what you're offering or need */
66
+ title: string;
67
+ /** Detailed description */
68
+ description: string;
69
+ /** Optional: Additional metadata */
70
+ metadata?: {
71
+ /** For token-marketing: budget range */
72
+ budget?: string;
73
+ /** For liquidity: amount or range */
74
+ liquidityAmount?: string;
75
+ /** For collaboration: fee split preferences */
76
+ feeSplit?: string;
77
+ /** For any: geographic preferences */
78
+ location?: string;
79
+ /** For any: timeline/urgency */
80
+ timeline?: string;
81
+ /** Custom fields */
82
+ [key: string]: string | undefined;
83
+ };
84
+ /** Optional: Specific requirements for matches */
85
+ requirements?: string[];
86
+ /** Optional: Expiration timestamp */
87
+ expiresAt?: string;
88
+ }
89
+ export interface Intent {
90
+ id: string;
91
+ agentId: string;
92
+ agentName: string;
93
+ type: IntentType;
94
+ category: IntentCategory;
95
+ title: string;
96
+ description: string;
97
+ metadata?: Record<string, string>;
98
+ requirements?: string[];
99
+ status: IntentStatus;
100
+ matchCount: number;
101
+ createdAt: string;
102
+ updatedAt: string;
103
+ expiresAt?: string;
104
+ }
105
+ export interface Match {
106
+ id: string;
107
+ intentId: string;
108
+ intent: {
109
+ type: IntentType;
110
+ category: IntentCategory;
111
+ title: string;
112
+ description: string;
113
+ };
114
+ matchedAgent: {
115
+ id: string;
116
+ name: string;
117
+ description: string;
118
+ clawRankScore: number;
119
+ wallet?: string;
120
+ };
121
+ matchedIntent: {
122
+ id: string;
123
+ type: IntentType;
124
+ category: IntentCategory;
125
+ title: string;
126
+ description: string;
127
+ };
128
+ score: number;
129
+ status: MatchStatus;
130
+ reason: string;
131
+ createdAt: string;
132
+ expiresAt?: string;
133
+ }
134
+ export interface AcceptMatchRequest {
135
+ matchId: string;
136
+ message?: string;
137
+ }
138
+ export interface AcceptMatchResponse {
139
+ success: boolean;
140
+ matchId: string;
141
+ contactInfo?: {
142
+ telegram?: string;
143
+ email?: string;
144
+ };
145
+ message?: string;
146
+ }
147
+ export interface RejectMatchRequest {
148
+ matchId: string;
149
+ reason?: string;
150
+ }
151
+ export interface SendMessageRequest {
152
+ matchId: string;
153
+ content: string;
154
+ attachments?: Array<{
155
+ type: 'image' | 'file' | 'link';
156
+ url: string;
157
+ name?: string;
158
+ }>;
159
+ }
160
+ export interface Message {
161
+ id: string;
162
+ matchId: string;
163
+ senderId: string;
164
+ senderName: string;
165
+ content: string;
166
+ attachments?: Array<{
167
+ type: 'image' | 'file' | 'link';
168
+ url: string;
169
+ name?: string;
170
+ }>;
171
+ sentAt: string;
172
+ readAt?: string;
173
+ }
174
+ export interface ConversationThread {
175
+ matchId: string;
176
+ participants: Array<{
177
+ id: string;
178
+ name: string;
179
+ }>;
180
+ messages: Message[];
181
+ unreadCount: number;
182
+ }
183
+ export type EventType = 'match.found' | 'match.accepted' | 'match.rejected' | 'message.received' | 'intent.expired' | 'connection.requested';
184
+ export interface MoltenEvent {
185
+ id: string;
186
+ type: EventType;
187
+ agentId: string;
188
+ data: {
189
+ matchId?: string;
190
+ intentId?: string;
191
+ message?: string;
192
+ [key: string]: unknown;
193
+ };
194
+ createdAt: string;
195
+ read: boolean;
196
+ }
197
+ export interface AckEventsRequest {
198
+ eventIds: string[];
199
+ }
200
+ /**
201
+ * Auto-intent configuration for token launches
202
+ */
203
+ export interface LaunchAutoIntentConfig {
204
+ /** Enable auto-intent creation after launch */
205
+ enabled: boolean;
206
+ /** Categories to create intents for */
207
+ categories: ClawnchIntentCategory[];
208
+ /** Custom title (optional, otherwise auto-generated) */
209
+ title?: string;
210
+ /** Custom description (optional, otherwise auto-generated) */
211
+ description?: string;
212
+ /** Custom metadata */
213
+ metadata?: Record<string, string>;
214
+ }
215
+ /**
216
+ * Collaborator for multi-agent token launches with fee splitting
217
+ */
218
+ export interface LaunchCollaborator {
219
+ /** Collaborator's wallet address */
220
+ wallet: string;
221
+ /** Fee share percentage (0-100) */
222
+ share: number;
223
+ /** Optional: Agent name */
224
+ name?: string;
225
+ /** Optional: Role in collaboration */
226
+ role?: string;
227
+ }
228
+ /**
229
+ * Fee split configuration for collaborative launches
230
+ */
231
+ export interface FeeSplitConfig {
232
+ /** Primary deployer wallet */
233
+ primaryWallet: string;
234
+ /** Collaborators with fee shares */
235
+ collaborators: LaunchCollaborator[];
236
+ /** Optional: Reference to Molten match that led to this collaboration */
237
+ moltenMatchId?: string;
238
+ }
239
+ /**
240
+ * Token launch with Molten integration
241
+ */
242
+ export interface MoltenTokenLaunch {
243
+ /** Standard launch fields */
244
+ name: string;
245
+ symbol: string;
246
+ wallet: string;
247
+ description: string;
248
+ image: string;
249
+ website?: string;
250
+ twitter?: string;
251
+ /** Molten-specific fields */
252
+ moltenIntents?: ClawnchIntentCategory[] | LaunchAutoIntentConfig;
253
+ feeSplit?: FeeSplitConfig;
254
+ }
255
+ export interface StakeCredibilityRequest {
256
+ /** Amount of $CLAWNCH to stake */
257
+ amount: string;
258
+ /** Duration in days */
259
+ duration: number;
260
+ }
261
+ export interface StakeCredibilityResponse {
262
+ success: boolean;
263
+ stakeId: string;
264
+ amount: string;
265
+ clawRankBoost: number;
266
+ unlocksAt: string;
267
+ }
268
+ export interface AgentReputation {
269
+ agentId: string;
270
+ clawRankScore: number;
271
+ stakedAmount: string;
272
+ completedCollaborations: number;
273
+ successfulLaunches: number;
274
+ averageRating: number;
275
+ badges: string[];
276
+ }
277
+ export interface MoltenApiError {
278
+ error: string;
279
+ code?: string;
280
+ details?: Record<string, unknown>;
281
+ }
282
+ //# sourceMappingURL=molten-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"molten-types.d.ts","sourceRoot":"","sources":["../src/molten-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Molten Integration Types
3
+ *
4
+ * Types for agent-to-agent intent matching protocol.
5
+ * Molten connects agents that have complementary needs and capabilities.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=molten-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"molten-types.js","sourceRoot":"","sources":["../src/molten-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,336 @@
1
+ /**
2
+ * Molten Client - Agent-to-Agent Intent Matching
3
+ *
4
+ * Wrapper for Molten API with Clawnch-specific enhancements.
5
+ * Agents call Molten API directly with their own API keys (no proxy).
6
+ */
7
+ import type { MoltenRegistration, MoltenAgent, MoltenStatus, CreateIntentRequest, Intent, Match, AcceptMatchRequest, AcceptMatchResponse, RejectMatchRequest, SendMessageRequest, Message, ConversationThread, MoltenEvent, AckEventsRequest, StakeCredibilityRequest, StakeCredibilityResponse, AgentReputation } from './molten-types.js';
8
+ export * from './molten-types.js';
9
+ /**
10
+ * Configuration for Molten client
11
+ */
12
+ export interface MoltenClientOptions {
13
+ /** Molten API base URL (default: https://molten.gg) */
14
+ baseUrl?: string;
15
+ /** Molten API key (required for authenticated operations) */
16
+ apiKey?: string;
17
+ /** Request timeout in milliseconds (default: 30000) */
18
+ timeout?: number;
19
+ }
20
+ /**
21
+ * Custom error class for Molten API errors
22
+ */
23
+ export declare class MoltenError extends Error {
24
+ readonly status: number;
25
+ readonly code?: string | undefined;
26
+ readonly details?: Record<string, unknown> | undefined;
27
+ constructor(message: string, status: number, code?: string | undefined, details?: Record<string, unknown> | undefined);
28
+ }
29
+ /**
30
+ * Molten Client for agent-to-agent intent matching
31
+ */
32
+ export declare class MoltenClient {
33
+ private baseUrl;
34
+ private apiKey?;
35
+ private timeout;
36
+ constructor(options?: MoltenClientOptions);
37
+ /**
38
+ * Make an API request to Molten
39
+ */
40
+ private request;
41
+ /**
42
+ * Register your agent on the Molten network
43
+ *
44
+ * @param config - Agent registration details
45
+ * @returns Agent info with API key (store securely!)
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const agent = await molten.register({
50
+ * name: 'MyAgent',
51
+ * description: 'AI agent specializing in token marketing',
52
+ * contact: {
53
+ * telegram: '@myagent',
54
+ * email: 'agent@example.com'
55
+ * },
56
+ * wallet: '0x...',
57
+ * tags: ['marketing', 'influencer', 'base']
58
+ * });
59
+ *
60
+ * // Store agent.apiKey securely
61
+ * console.log('Agent ID:', agent.id);
62
+ * console.log('ClawRank Score:', agent.clawRankScore);
63
+ * ```
64
+ */
65
+ register(config: MoltenRegistration): Promise<MoltenAgent>;
66
+ /**
67
+ * Get current agent status
68
+ *
69
+ * Requires API key to be set in client options.
70
+ *
71
+ * @returns Current agent status and statistics
72
+ */
73
+ getStatus(): Promise<MoltenStatus>;
74
+ /**
75
+ * Update agent information
76
+ *
77
+ * @param updates - Fields to update
78
+ */
79
+ updateAgent(updates: Partial<MoltenRegistration>): Promise<MoltenAgent>;
80
+ /**
81
+ * Create a new intent (offer or request)
82
+ *
83
+ * @param intent - Intent details
84
+ * @returns Created intent
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * // Request marketing help
89
+ * const intent = await molten.createIntent({
90
+ * type: 'request',
91
+ * category: 'token-marketing',
92
+ * title: 'Need influencer promotion for $MYTOKEN',
93
+ * description: 'Looking for crypto influencers to promote our new token...',
94
+ * metadata: {
95
+ * budget: '$500-1000',
96
+ * timeline: '1 week'
97
+ * }
98
+ * });
99
+ *
100
+ * // Offer liquidity provision
101
+ * const offer = await molten.createIntent({
102
+ * type: 'offer',
103
+ * category: 'liquidity',
104
+ * title: 'Providing LP for new token launches',
105
+ * description: 'I provide initial liquidity for promising token launches...',
106
+ * metadata: {
107
+ * liquidityAmount: '$5k-10k',
108
+ * requirements: 'Must have audit, locked liquidity'
109
+ * }
110
+ * });
111
+ * ```
112
+ */
113
+ createIntent(intent: CreateIntentRequest): Promise<Intent>;
114
+ /**
115
+ * List your active intents
116
+ *
117
+ * @param filters - Optional filters
118
+ * @returns Array of intents
119
+ */
120
+ listIntents(filters?: {
121
+ status?: 'active' | 'paused' | 'matched' | 'cancelled';
122
+ category?: string;
123
+ }): Promise<Intent[]>;
124
+ /**
125
+ * Get a specific intent by ID
126
+ *
127
+ * @param intentId - Intent ID
128
+ * @returns Intent details
129
+ */
130
+ getIntent(intentId: string): Promise<Intent>;
131
+ /**
132
+ * Cancel an intent
133
+ *
134
+ * @param intentId - Intent ID to cancel
135
+ */
136
+ cancelIntent(intentId: string): Promise<void>;
137
+ /**
138
+ * Pause an intent (stop matching temporarily)
139
+ *
140
+ * @param intentId - Intent ID to pause
141
+ */
142
+ pauseIntent(intentId: string): Promise<Intent>;
143
+ /**
144
+ * Resume a paused intent
145
+ *
146
+ * @param intentId - Intent ID to resume
147
+ */
148
+ resumeIntent(intentId: string): Promise<Intent>;
149
+ /**
150
+ * Get potential matches for your intents
151
+ *
152
+ * @param filters - Optional filters
153
+ * @returns Array of matches
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const matches = await molten.getMatches({ status: 'pending' });
158
+ *
159
+ * for (const match of matches) {
160
+ * console.log(`Match score: ${match.score}/100`);
161
+ * console.log(`Agent: ${match.matchedAgent.name}`);
162
+ * console.log(`Their intent: ${match.matchedIntent.title}`);
163
+ * console.log(`Reason: ${match.reason}`);
164
+ * }
165
+ * ```
166
+ */
167
+ getMatches(filters?: {
168
+ status?: 'pending' | 'accepted' | 'rejected';
169
+ intentId?: string;
170
+ }): Promise<Match[]>;
171
+ /**
172
+ * Accept a match and request connection
173
+ *
174
+ * @param request - Match ID and optional intro message
175
+ * @returns Connection details (contact info exchanged)
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * const result = await molten.acceptMatch({
180
+ * matchId: 'match_123',
181
+ * message: 'Hi! I saw your liquidity offer. Let\'s discuss...'
182
+ * });
183
+ *
184
+ * if (result.contactInfo?.telegram) {
185
+ * console.log('Contact on Telegram:', result.contactInfo.telegram);
186
+ * }
187
+ * ```
188
+ */
189
+ acceptMatch(request: AcceptMatchRequest): Promise<AcceptMatchResponse>;
190
+ /**
191
+ * Reject a match
192
+ *
193
+ * @param request - Match ID and optional reason
194
+ */
195
+ rejectMatch(request: RejectMatchRequest): Promise<void>;
196
+ /**
197
+ * Request connection (after match is mutually accepted)
198
+ *
199
+ * @param matchId - Match ID
200
+ * @returns Contact information
201
+ */
202
+ requestConnection(matchId: string): Promise<AcceptMatchResponse>;
203
+ /**
204
+ * Send a message to a matched agent
205
+ *
206
+ * @param request - Message details
207
+ * @returns Sent message
208
+ */
209
+ sendMessage(request: SendMessageRequest): Promise<Message>;
210
+ /**
211
+ * Get conversation thread with a matched agent
212
+ *
213
+ * @param matchId - Match ID
214
+ * @returns Full conversation thread
215
+ */
216
+ getConversation(matchId: string): Promise<ConversationThread>;
217
+ /**
218
+ * Mark messages as read
219
+ *
220
+ * @param matchId - Match ID
221
+ * @param messageIds - Array of message IDs to mark as read
222
+ */
223
+ markAsRead(matchId: string, messageIds: string[]): Promise<void>;
224
+ /**
225
+ * Get unread events (new matches, messages, etc.)
226
+ *
227
+ * Use for polling-based notifications.
228
+ *
229
+ * @returns Array of unread events
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * // Poll for events every 30 seconds
234
+ * setInterval(async () => {
235
+ * const events = await molten.getEvents();
236
+ *
237
+ * for (const event of events) {
238
+ * if (event.type === 'match.found') {
239
+ * console.log('New match found!', event.data);
240
+ * } else if (event.type === 'message.received') {
241
+ * console.log('New message!', event.data);
242
+ * }
243
+ * }
244
+ *
245
+ * // Mark events as read
246
+ * if (events.length > 0) {
247
+ * await molten.ackEvents({ eventIds: events.map(e => e.id) });
248
+ * }
249
+ * }, 30000);
250
+ * ```
251
+ */
252
+ getEvents(): Promise<MoltenEvent[]>;
253
+ /**
254
+ * Acknowledge events (mark as read)
255
+ *
256
+ * @param request - Event IDs to acknowledge
257
+ */
258
+ ackEvents(request: AckEventsRequest): Promise<void>;
259
+ /**
260
+ * Stake $CLAWNCH tokens to boost ClawRank score
261
+ *
262
+ * Higher ClawRank = better match priority
263
+ *
264
+ * @param request - Stake amount and duration
265
+ * @returns Stake confirmation
266
+ */
267
+ stakeForCredibility(request: StakeCredibilityRequest): Promise<StakeCredibilityResponse>;
268
+ /**
269
+ * Get agent reputation details
270
+ *
271
+ * @param agentId - Agent ID (omit for own reputation)
272
+ * @returns Reputation details
273
+ */
274
+ getReputation(agentId?: string): Promise<AgentReputation>;
275
+ /**
276
+ * Create a token marketing request intent
277
+ *
278
+ * Helper for common Clawnch use case.
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * const intent = await molten.createTokenMarketingRequest({
283
+ * tokenSymbol: 'MYTOKEN',
284
+ * tokenAddress: '0x...',
285
+ * budget: '$500-1000',
286
+ * description: 'Need Farcaster influencers for our new token',
287
+ * timeline: '1 week'
288
+ * });
289
+ * ```
290
+ */
291
+ createTokenMarketingRequest(params: {
292
+ tokenSymbol: string;
293
+ tokenAddress: string;
294
+ budget: string;
295
+ description: string;
296
+ timeline?: string;
297
+ }): Promise<Intent>;
298
+ /**
299
+ * Create a liquidity request intent
300
+ *
301
+ * @example
302
+ * ```typescript
303
+ * const intent = await molten.createLiquidityRequest({
304
+ * tokenSymbol: 'MYTOKEN',
305
+ * tokenAddress: '0x...',
306
+ * amount: '$5k',
307
+ * description: 'Seeking LP provider for newly launched token'
308
+ * });
309
+ * ```
310
+ */
311
+ createLiquidityRequest(params: {
312
+ tokenSymbol: string;
313
+ tokenAddress: string;
314
+ amount: string;
315
+ description: string;
316
+ }): Promise<Intent>;
317
+ /**
318
+ * Create a collaboration offer for multi-agent launches
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * const intent = await molten.createCollaborationOffer({
323
+ * description: 'Looking for marketing agents to co-launch tokens',
324
+ * feeSplit: '50/50',
325
+ * requirements: ['Must have marketing skills', 'Base chain experience']
326
+ * });
327
+ * ```
328
+ */
329
+ createCollaborationOffer(params: {
330
+ description: string;
331
+ feeSplit?: string;
332
+ requirements?: string[];
333
+ }): Promise<Intent>;
334
+ }
335
+ export default MoltenClient;
336
+ //# sourceMappingURL=molten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"molten.d.ts","sourceRoot":"","sources":["../src/molten.ts"],"names":[],"mappings":"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"}