quorum-eliza-plugin 0.1.0 → 0.2.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/README.md +99 -71
- package/package.json +39 -19
- package/tsconfig.json +0 -14
package/README.md
CHANGED
|
@@ -1,112 +1,140 @@
|
|
|
1
|
-
#
|
|
1
|
+
# quorum-eliza-plugin
|
|
2
2
|
|
|
3
|
-
Multi-agent wallet coordination for [Eliza](https://github.com/
|
|
3
|
+
Multi-agent wallet coordination plugin for [Eliza](https://github.com/elizaOS/eliza).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Enables any Eliza agent to create, join, and co-sign multi-agent wallets via [Quorum](https://quorumclaw.com).
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
- ✍️ **Sign proposals** - Approve spending from shared treasuries
|
|
10
|
-
- 📋 **Track proposals** - See pending transactions needing signatures
|
|
11
|
-
- ⚡ **Auto-broadcast** - Transactions broadcast when threshold is met
|
|
7
|
+
[](https://www.npmjs.com/package/quorum-eliza-plugin)
|
|
8
|
+
[](https://github.com/aetos53t/quorum-eliza-plugin/actions)
|
|
12
9
|
|
|
13
|
-
##
|
|
10
|
+
## Features
|
|
14
11
|
|
|
15
|
-
- Bitcoin
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
12
|
+
- **Create multisigs** - "Create a 2-of-3 Bitcoin multisig called Team Treasury"
|
|
13
|
+
- **Join via invite** - "Join multisig with code abc12345"
|
|
14
|
+
- **Sign proposals** - "Sign proposal xyz" or auto-sign if only one pending
|
|
15
|
+
- **Create proposals** - "Send 5000 sats to bc1q... from treasury"
|
|
16
|
+
- **List pending** - "Show pending proposals"
|
|
20
17
|
|
|
21
18
|
## Installation
|
|
22
19
|
|
|
23
20
|
```bash
|
|
24
|
-
npm install
|
|
21
|
+
npm install quorum-eliza-plugin
|
|
25
22
|
```
|
|
26
23
|
|
|
27
24
|
## Usage
|
|
28
25
|
|
|
29
26
|
```typescript
|
|
30
|
-
import { quorumPlugin } from '
|
|
27
|
+
import { quorumPlugin } from 'quorum-eliza-plugin';
|
|
31
28
|
|
|
32
29
|
export const agent = {
|
|
33
|
-
name: 'MyAgent',
|
|
34
30
|
plugins: [quorumPlugin],
|
|
35
31
|
settings: {
|
|
36
|
-
//
|
|
37
|
-
QUORUM_PRIVATE_KEY: process.env.AGENT_PRIVATE_KEY,
|
|
32
|
+
QUORUM_PRIVATE_KEY: '...', // 32-byte hex private key
|
|
38
33
|
},
|
|
39
34
|
};
|
|
40
35
|
```
|
|
41
36
|
|
|
37
|
+
## Configuration
|
|
38
|
+
|
|
39
|
+
| Setting | Description |
|
|
40
|
+
|---------|-------------|
|
|
41
|
+
| `QUORUM_PRIVATE_KEY` | 32-byte hex private key for signing |
|
|
42
|
+
| `WALLET_PRIVATE_KEY` | Fallback if `QUORUM_PRIVATE_KEY` not set |
|
|
43
|
+
| `QUORUM_API_URL` | API endpoint (default: `https://quorumclaw.com`) |
|
|
44
|
+
|
|
42
45
|
## Actions
|
|
43
46
|
|
|
44
|
-
###
|
|
45
|
-
```
|
|
46
|
-
"Create a 2-of-3 Bitcoin multisig called Team Treasury"
|
|
47
|
-
```
|
|
47
|
+
### QUORUM_CREATE_MULTISIG
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
"Join multisig with code abc12345"
|
|
52
|
-
```
|
|
49
|
+
Create a new multi-agent wallet.
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
"Show pending proposals"
|
|
57
|
-
```
|
|
51
|
+
**Triggers:** "create multisig", "create wallet", "create treasury"
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
53
|
+
**Parameters parsed from message:**
|
|
54
|
+
- Threshold: `2-of-3`, `3-of-5`, etc.
|
|
55
|
+
- Name: `called "Team Treasury"` or `named "..."`
|
|
56
|
+
- Chain: "bitcoin", "ethereum", "solana", "base", "stacks"
|
|
63
57
|
|
|
64
|
-
###
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
### QUORUM_JOIN_MULTISIG
|
|
59
|
+
|
|
60
|
+
Join an existing wallet via invite code.
|
|
61
|
+
|
|
62
|
+
**Triggers:** "join multisig", "join wallet", "accept invite"
|
|
63
|
+
|
|
64
|
+
**Parameters:**
|
|
65
|
+
- Invite code: 8-character hex code
|
|
66
|
+
|
|
67
|
+
### QUORUM_CREATE_PROPOSAL
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
Propose a transaction from a shared wallet.
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|----------|-------------|
|
|
73
|
-
| `QUORUM_PRIVATE_KEY` | Your agent's private key (hex, 32 bytes) |
|
|
74
|
-
| `QUORUM_API_URL` | API endpoint (default: https://quorumclaw.com) |
|
|
71
|
+
**Triggers:** "send from multisig", "propose transfer", "send sats"
|
|
75
72
|
|
|
76
|
-
|
|
73
|
+
**Parameters:**
|
|
74
|
+
- Amount: `5000 sats`
|
|
75
|
+
- Recipient: Bitcoin/EVM address
|
|
76
|
+
- Note: `note: "..." ` or `for "..."`
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
2. **Coordination**: Agents create/join multisigs via invite codes
|
|
80
|
-
3. **Proposals**: Any agent can propose spending from the shared wallet
|
|
81
|
-
4. **Signing**: Each agent signs proposals independently (no MuSig2 rounds needed)
|
|
82
|
-
5. **Broadcast**: When threshold is met, the transaction auto-broadcasts
|
|
78
|
+
### QUORUM_SIGN_PROPOSAL
|
|
83
79
|
|
|
84
|
-
|
|
80
|
+
Sign a pending proposal.
|
|
81
|
+
|
|
82
|
+
**Triggers:** "sign proposal", "approve transaction"
|
|
83
|
+
|
|
84
|
+
**Parameters:**
|
|
85
|
+
- Proposal ID (UUID) or auto-selects if only one pending
|
|
86
|
+
|
|
87
|
+
### QUORUM_LIST_PROPOSALS
|
|
88
|
+
|
|
89
|
+
List all pending proposals across wallets.
|
|
90
|
+
|
|
91
|
+
**Triggers:** "list proposals", "show pending", "what needs signing"
|
|
92
|
+
|
|
93
|
+
## Provider: QUORUM_MULTISIG_INFO
|
|
94
|
+
|
|
95
|
+
Automatically injects wallet context into agent conversations:
|
|
85
96
|
|
|
86
97
|
```
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
┌──────▼──────┐
|
|
95
|
-
│ Quorum │
|
|
96
|
-
│ API │
|
|
97
|
-
└──────┬──────┘
|
|
98
|
-
│
|
|
99
|
-
┌──────▼──────┐
|
|
100
|
-
│ Blockchain │
|
|
101
|
-
│ (Bitcoin) │
|
|
102
|
-
└─────────────┘
|
|
98
|
+
## Quorum Multi-Agent Wallets
|
|
99
|
+
|
|
100
|
+
### My Wallets
|
|
101
|
+
- **Team Treasury**: bc1p... (2-of-3 on bitcoin-mainnet)
|
|
102
|
+
|
|
103
|
+
### ⚠️ Pending Proposals Requiring Signature
|
|
104
|
+
- **5000 sats** to bc1q... [1 sigs] - ID: abc123...
|
|
103
105
|
```
|
|
104
106
|
|
|
105
|
-
##
|
|
107
|
+
## Development
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Install dependencies
|
|
111
|
+
npm install
|
|
112
|
+
|
|
113
|
+
# Run tests
|
|
114
|
+
npm test
|
|
115
|
+
|
|
116
|
+
# Build
|
|
117
|
+
npm run build
|
|
118
|
+
|
|
119
|
+
# Watch mode
|
|
120
|
+
npm run dev
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Supported Chains
|
|
124
|
+
|
|
125
|
+
| Chain | Status |
|
|
126
|
+
|-------|--------|
|
|
127
|
+
| Bitcoin (Taproot) | ✅ Mainnet proven |
|
|
128
|
+
| Ethereum (Safe) | ✅ Adapter ready |
|
|
129
|
+
| Solana (Squads) | ✅ Adapter ready |
|
|
130
|
+
| Base | ✅ Adapter ready |
|
|
131
|
+
| Stacks | ✅ Adapter ready |
|
|
132
|
+
|
|
133
|
+
## Related
|
|
106
134
|
|
|
107
|
-
- [Quorum API
|
|
108
|
-
- [
|
|
109
|
-
- [
|
|
135
|
+
- [Quorum API](https://quorumclaw.com) - Multi-agent wallet coordination
|
|
136
|
+
- [quorum-sdk](https://www.npmjs.com/package/quorum-sdk) - TypeScript SDK
|
|
137
|
+
- [Eliza](https://github.com/elizaOS/eliza) - AI agent framework
|
|
110
138
|
|
|
111
139
|
## License
|
|
112
140
|
|
package/package.json
CHANGED
|
@@ -1,38 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quorum-eliza-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Quorum multi-agent wallet plugin for Eliza",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"src",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
14
13
|
"scripts": {
|
|
15
14
|
"build": "tsc",
|
|
16
|
-
"dev": "tsc --watch"
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"test": "vitest run",
|
|
17
|
+
"test:watch": "vitest",
|
|
18
|
+
"test:coverage": "vitest run --coverage",
|
|
19
|
+
"lint": "tsc --noEmit",
|
|
20
|
+
"prepublishOnly": "npm run lint && npm run test && npm run build"
|
|
17
21
|
},
|
|
18
|
-
"keywords": [
|
|
19
|
-
|
|
22
|
+
"keywords": [
|
|
23
|
+
"eliza",
|
|
24
|
+
"elizaos",
|
|
25
|
+
"ai16z",
|
|
26
|
+
"quorum",
|
|
27
|
+
"multisig",
|
|
28
|
+
"bitcoin",
|
|
29
|
+
"multi-agent",
|
|
30
|
+
"wallet",
|
|
31
|
+
"plugin"
|
|
32
|
+
],
|
|
33
|
+
"author": "Aetos",
|
|
20
34
|
"license": "MIT",
|
|
21
|
-
"homepage": "https://quorumclaw.com",
|
|
22
35
|
"repository": {
|
|
23
36
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/aetos53t/
|
|
25
|
-
},
|
|
26
|
-
"peerDependencies": {
|
|
27
|
-
"@elizaos/core": ">=1.0.0"
|
|
37
|
+
"url": "https://github.com/aetos53t/quorum-eliza-plugin"
|
|
28
38
|
},
|
|
39
|
+
"homepage": "https://quorumclaw.com",
|
|
29
40
|
"dependencies": {
|
|
30
|
-
"quorum-sdk": "^0.1.0",
|
|
31
41
|
"@noble/curves": "^1.4.0",
|
|
32
|
-
"@noble/hashes": "^1.4.0"
|
|
42
|
+
"@noble/hashes": "^1.4.0",
|
|
43
|
+
"quorum-sdk": "^0.1.0"
|
|
33
44
|
},
|
|
34
45
|
"devDependencies": {
|
|
35
46
|
"@elizaos/core": "^1.0.0",
|
|
36
|
-
"
|
|
47
|
+
"@types/node": "^25.3.0",
|
|
48
|
+
"@vitest/coverage-v8": "^1.6.0",
|
|
49
|
+
"typescript": "^5.3.3",
|
|
50
|
+
"vitest": "^1.6.0"
|
|
51
|
+
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@elizaos/core": ">=0.1.0"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=18"
|
|
37
57
|
}
|
|
38
58
|
}
|
package/tsconfig.json
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"moduleResolution": "bundler",
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"outDir": "dist",
|
|
8
|
-
"strict": false,
|
|
9
|
-
"esModuleInterop": true,
|
|
10
|
-
"skipLibCheck": true,
|
|
11
|
-
"noImplicitAny": false
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*"]
|
|
14
|
-
}
|