@agnic/wallet-skills 1.1.0 → 1.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/.agents/skills/authenticate-wallet/SKILL.md +51 -0
- package/.agents/skills/check-balance/SKILL.md +51 -0
- package/.agents/skills/fund-wallet/SKILL.md +46 -0
- package/.agents/skills/get-agent-identity/SKILL.md +52 -0
- package/.agents/skills/pay-for-service/SKILL.md +67 -0
- package/.agents/skills/search-for-service/SKILL.md +57 -0
- package/.agents/skills/send-usdc/SKILL.md +61 -0
- package/.agents/skills/trade-tokens/SKILL.md +78 -0
- package/README.md +46 -22
- package/package.json +1 -1
- package/skills/authenticate-wallet/SKILL.md +51 -28
- package/skills/authenticate-wallet.md +18 -0
- package/skills/check-balance/SKILL.md +55 -31
- package/skills/check-balance.md +15 -0
- package/skills/fund-wallet/SKILL.md +62 -29
- package/skills/fund-wallet.md +17 -0
- package/skills/get-agent-identity/SKILL.md +52 -25
- package/skills/get-agent-identity.md +19 -0
- package/skills/pay-for-service/SKILL.md +81 -39
- package/skills/pay-for-service.md +16 -0
- package/skills/search-for-service/SKILL.md +63 -35
- package/skills/search-for-service.md +15 -0
- package/skills/send-usdc/SKILL.md +73 -38
- package/skills/send-usdc.md +19 -0
- package/skills/trade-tokens/SKILL.md +81 -52
- package/skills/trade-tokens.md +22 -0
- package/skills-lock.json +45 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: authenticate-wallet
|
|
3
|
+
description: Sign in to AgnicPay wallet via browser-based OAuth
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Authenticate Wallet
|
|
10
|
+
|
|
11
|
+
Authenticate the user with their AgnicPay wallet using browser-based OAuth login.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Run the login command:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest auth login
|
|
18
|
+
```
|
|
19
|
+
This opens the user's browser to AgnicPay where they sign in and set spending limits.
|
|
20
|
+
|
|
21
|
+
2. Wait for the browser flow to complete. The CLI will show "Authenticated!" when done.
|
|
22
|
+
|
|
23
|
+
3. Verify authentication:
|
|
24
|
+
```bash
|
|
25
|
+
npx agnic@latest status --json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Expected Output
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"authenticated": true,
|
|
33
|
+
"userId": "did:privy:...",
|
|
34
|
+
"email": "user@example.com",
|
|
35
|
+
"walletAddress": "0x...",
|
|
36
|
+
"tokenExpiry": "2026-05-22T..."
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Error Handling
|
|
41
|
+
|
|
42
|
+
- If the user cancels the browser flow, the CLI will show "Authentication failed".
|
|
43
|
+
- If the browser doesn't open, the CLI prints a URL the user can copy manually.
|
|
44
|
+
- If already authenticated, `agnic status` will confirm without re-login.
|
|
45
|
+
|
|
46
|
+
## Logout
|
|
47
|
+
|
|
48
|
+
To remove stored credentials:
|
|
49
|
+
```bash
|
|
50
|
+
npx agnic@latest auth logout
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check-balance
|
|
3
|
+
description: Check USDC balance across networks (Base, Solana)
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Check Balance
|
|
10
|
+
|
|
11
|
+
Check the user's USDC balance across supported networks.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Verify authentication:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest status --json
|
|
18
|
+
```
|
|
19
|
+
If not authenticated, run `npx agnic@latest auth login` first.
|
|
20
|
+
|
|
21
|
+
2. Check balance for all networks:
|
|
22
|
+
```bash
|
|
23
|
+
npx agnic@latest balance --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
3. Or check a specific network:
|
|
27
|
+
```bash
|
|
28
|
+
npx agnic@latest balance --network base --json
|
|
29
|
+
npx agnic@latest balance --network solana --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Expected Output
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
[
|
|
36
|
+
{ "network": "base", "balance": "125.50", "address": "0x..." },
|
|
37
|
+
{ "network": "solana", "balance": "0", "address": "N/A" }
|
|
38
|
+
]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Supported Networks
|
|
42
|
+
|
|
43
|
+
- `base` — Base mainnet (EVM, primary)
|
|
44
|
+
- `solana` — Solana mainnet
|
|
45
|
+
- `base-sepolia` — Base testnet
|
|
46
|
+
- `solana-devnet` — Solana devnet
|
|
47
|
+
|
|
48
|
+
## Error Handling
|
|
49
|
+
|
|
50
|
+
- If not authenticated: prompt user to run `npx agnic@latest auth login`
|
|
51
|
+
- If a network returns an error, report it and show available balances
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fund-wallet
|
|
3
|
+
description: Get instructions for funding your AgnicPay wallet
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Fund Wallet
|
|
10
|
+
|
|
11
|
+
Provide instructions for adding funds to the user's AgnicPay wallet.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Check if the user is authenticated:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest status --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Show the user's wallet address:
|
|
21
|
+
```bash
|
|
22
|
+
npx agnic@latest address --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
3. Explain funding options:
|
|
26
|
+
|
|
27
|
+
**Option 1: AgnicPay Dashboard**
|
|
28
|
+
- Go to [pay.agnic.ai](https://pay.agnic.ai)
|
|
29
|
+
- Navigate to your dashboard
|
|
30
|
+
- Use the "Add Funds" feature to deposit USDC
|
|
31
|
+
|
|
32
|
+
**Option 2: Direct Transfer**
|
|
33
|
+
- Send USDC to your wallet address on Base network
|
|
34
|
+
- The address is shown by `agnic address`
|
|
35
|
+
- Use any wallet (MetaMask, Coinbase, etc.) to send USDC on Base
|
|
36
|
+
|
|
37
|
+
4. After funding, verify the balance:
|
|
38
|
+
```bash
|
|
39
|
+
npx agnic@latest balance --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Important Notes
|
|
43
|
+
|
|
44
|
+
- AgnicPay wallets use USDC (not ETH) for payments and trading
|
|
45
|
+
- Base network is the primary chain
|
|
46
|
+
- Minimum recommended balance: $1.00 USDC for testing
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: get-agent-identity
|
|
3
|
+
description: Check your agent's on-chain ERC-8004 identity and trust score
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Get Agent Identity
|
|
10
|
+
|
|
11
|
+
Check the user's on-chain ERC-8004 agent identity, trust score, and KYA credentials.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Verify authentication:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest status --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Check agent identity:
|
|
21
|
+
```bash
|
|
22
|
+
npx agnic@latest agent-identity --json
|
|
23
|
+
```
|
|
24
|
+
Note: If `agent-identity` is not available, use the API directly:
|
|
25
|
+
```bash
|
|
26
|
+
npx agnic@latest x402 pay "https://api.agnic.ai/api/agent/identity" --method GET --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## What is ERC-8004?
|
|
30
|
+
|
|
31
|
+
ERC-8004 ("Trustless Agents") is an Ethereum standard that gives AI agents:
|
|
32
|
+
- **On-chain identity** — An NFT representing the agent
|
|
33
|
+
- **Reputation score** — Trust score based on transaction history
|
|
34
|
+
- **Verifiable credentials** — KYA (Know Your Agent) credentials for identity verification
|
|
35
|
+
|
|
36
|
+
## Expected Output
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"agentId": 373,
|
|
41
|
+
"ownerAddress": "0x046906b3...",
|
|
42
|
+
"status": "active",
|
|
43
|
+
"registeredAt": "2024-12-15T...",
|
|
44
|
+
"trustScore": 85,
|
|
45
|
+
"categories": ["payment", "general"]
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Error Handling
|
|
50
|
+
|
|
51
|
+
- If the user doesn't have an agent identity, they can create one via the AgnicPay dashboard
|
|
52
|
+
- Agent identity is automatically created during OAuth sign-up
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pay-for-service
|
|
3
|
+
description: Make paid requests to x402-enabled APIs
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Pay for Service
|
|
10
|
+
|
|
11
|
+
Make a paid x402 request to an API endpoint. AgnicPay handles the payment automatically.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Verify authentication:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest status --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Check balance to ensure sufficient funds:
|
|
21
|
+
```bash
|
|
22
|
+
npx agnic@latest balance --network base --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
3. Make the x402 payment request:
|
|
26
|
+
```bash
|
|
27
|
+
npx agnic@latest x402 pay "<url>" --json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
4. For POST requests with a body:
|
|
31
|
+
```bash
|
|
32
|
+
npx agnic@latest x402 pay "<url>" --method POST --body '{"key": "value"}' --json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Parameters
|
|
36
|
+
|
|
37
|
+
- `<url>` — Full URL of the x402-enabled API endpoint
|
|
38
|
+
- `--method` — HTTP method (default: GET)
|
|
39
|
+
- `--body` — Request body as JSON string (for POST/PUT)
|
|
40
|
+
|
|
41
|
+
## Example
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx agnic@latest x402 pay "https://api.example.com/analysis" \
|
|
45
|
+
--method POST \
|
|
46
|
+
--body '{"query": "latest market data"}' \
|
|
47
|
+
--json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Expected Output
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"status": 200,
|
|
55
|
+
"cost": "0.001",
|
|
56
|
+
"network": "base",
|
|
57
|
+
"transactionHash": "0xabc123...",
|
|
58
|
+
"data": { "result": "..." }
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Error Handling
|
|
63
|
+
|
|
64
|
+
- If not authenticated: prompt user to run `npx agnic@latest auth login`
|
|
65
|
+
- If balance is insufficient, inform the user and suggest funding
|
|
66
|
+
- If the API returns an error, show the status code and response body
|
|
67
|
+
- The `--body` flag must be valid JSON; if invalid, the CLI will report the parse error
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: search-for-service
|
|
3
|
+
description: Search for x402-enabled APIs and services
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Search for Service
|
|
10
|
+
|
|
11
|
+
Discover x402-enabled APIs that can be paid for using AgnicPay.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Search for APIs matching the user's query:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest x402 search "<query>" --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Optionally filter by category:
|
|
21
|
+
```bash
|
|
22
|
+
npx agnic@latest x402 search "<query>" --category AI --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
3. Present the results to the user with names, descriptions, prices, and URLs.
|
|
26
|
+
|
|
27
|
+
## Parameters
|
|
28
|
+
|
|
29
|
+
- `<query>` — Search term (e.g., "sentiment analysis", "weather data")
|
|
30
|
+
- `--category` — Filter by category: AI, Crypto, Data, Trading, Finance, Weather
|
|
31
|
+
- `--limit <n>` — Max results (default: 10)
|
|
32
|
+
|
|
33
|
+
## Example
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx agnic@latest x402 search "sentiment analysis" --category AI --json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Expected Output
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"apis": [
|
|
44
|
+
{
|
|
45
|
+
"name": "Sentiment Pro",
|
|
46
|
+
"description": "Real-time sentiment analysis",
|
|
47
|
+
"price": "0.001",
|
|
48
|
+
"url": "https://api.example.com/sentiment"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Error Handling
|
|
55
|
+
|
|
56
|
+
- If no results found, suggest broadening the search or trying different keywords
|
|
57
|
+
- Authentication is NOT required for search (it's a public endpoint)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: send-usdc
|
|
3
|
+
description: Send USDC to a wallet address on Base or Solana
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Send USDC
|
|
10
|
+
|
|
11
|
+
Send USDC from the user's wallet to a recipient address.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Verify authentication:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest status --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Check balance to ensure sufficient funds:
|
|
21
|
+
```bash
|
|
22
|
+
npx agnic@latest balance --network base --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
3. Confirm with the user: the amount, recipient address, and network.
|
|
26
|
+
|
|
27
|
+
4. Send USDC:
|
|
28
|
+
```bash
|
|
29
|
+
npx agnic@latest send <amount> <recipient_address> --network base --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Parameters
|
|
33
|
+
|
|
34
|
+
- `<amount>` — Amount in USDC (e.g., `5.00`)
|
|
35
|
+
- `<recipient_address>` — Destination wallet address (0x... for EVM)
|
|
36
|
+
- `--network` — Network to send on (default: `base`)
|
|
37
|
+
- `--memo` — Optional transaction memo
|
|
38
|
+
|
|
39
|
+
## Example
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx agnic@latest send 5.00 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7 --network base --json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Expected Output
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"amount": "5.00",
|
|
50
|
+
"to": "0x742d35Cc...",
|
|
51
|
+
"network": "base",
|
|
52
|
+
"transactionHash": "0xabc123...",
|
|
53
|
+
"explorerUrl": "https://basescan.org/tx/0xabc123..."
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Error Handling
|
|
58
|
+
|
|
59
|
+
- If balance is insufficient, inform the user and suggest funding their wallet
|
|
60
|
+
- Always confirm the recipient address and amount before sending
|
|
61
|
+
- If the transaction fails, show the error message from the API
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trade-tokens
|
|
3
|
+
description: Trade/swap tokens on Base (USDC, ETH, WETH, cbETH, DAI, AERO)
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Trade Tokens
|
|
10
|
+
|
|
11
|
+
Swap tokens on Base mainnet using AgnicPay's DEX integration.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Verify authentication:
|
|
16
|
+
```bash
|
|
17
|
+
npx agnic@latest status --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Check balance to ensure sufficient funds:
|
|
21
|
+
```bash
|
|
22
|
+
npx agnic@latest balance --network base --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
3. Preview the trade (optional but recommended):
|
|
26
|
+
```bash
|
|
27
|
+
npx agnic@latest trade <amount> <sell_token> <buy_token> --dry-run --json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
4. Confirm with the user: amount, tokens, and estimated output.
|
|
31
|
+
|
|
32
|
+
5. Execute the trade:
|
|
33
|
+
```bash
|
|
34
|
+
npx agnic@latest trade <amount> <sell_token> <buy_token> --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Supported Tokens
|
|
38
|
+
|
|
39
|
+
USDC, ETH, WETH, cbETH, DAI, AERO (case-insensitive)
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
- `<amount>` — Amount of the sell token
|
|
44
|
+
- `<sell_token>` — Token to sell (e.g., `usdc`)
|
|
45
|
+
- `<buy_token>` — Token to buy (e.g., `eth`)
|
|
46
|
+
- `--slippage <percent>` — Max slippage (default: `1.0`)
|
|
47
|
+
- `--dry-run` — Show quote without executing
|
|
48
|
+
|
|
49
|
+
## Example
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Preview
|
|
53
|
+
npx agnic@latest trade 10 usdc eth --dry-run --json
|
|
54
|
+
|
|
55
|
+
# Execute
|
|
56
|
+
npx agnic@latest trade 10 usdc eth --json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Expected Output
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"success": true,
|
|
64
|
+
"sellAmount": "10",
|
|
65
|
+
"sellToken": "USDC",
|
|
66
|
+
"buyAmount": "0.00396",
|
|
67
|
+
"buyToken": "ETH",
|
|
68
|
+
"price": "2525.25",
|
|
69
|
+
"transactionHash": "0xabc123...",
|
|
70
|
+
"explorerUrl": "https://basescan.org/tx/0xabc123..."
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Error Handling
|
|
75
|
+
|
|
76
|
+
- Always preview with `--dry-run` first to show the user expected output
|
|
77
|
+
- If slippage is too high, suggest a lower amount or higher slippage tolerance
|
|
78
|
+
- Trading is only available on Base mainnet
|
package/README.md
CHANGED
|
@@ -1,39 +1,63 @@
|
|
|
1
|
-
#
|
|
1
|
+
# AgnicPay Agentic Wallet Skills
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agent Skills for crypto wallet operations. These skills enable AI agents to authenticate, check balances, send USDC, trade tokens, make x402 payments, and verify on-chain identity using the `agnic` CLI.
|
|
4
|
+
|
|
5
|
+
## Available Skills
|
|
6
|
+
|
|
7
|
+
| Skill | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| **authenticate-wallet** | Sign in to the wallet via browser OAuth |
|
|
10
|
+
| **check-balance** | Check USDC balance across networks (Base, Solana) |
|
|
11
|
+
| **send-usdc** | Send USDC to Ethereum wallet addresses |
|
|
12
|
+
| **trade-tokens** | Swap/trade tokens on Base (USDC, ETH, WETH, cbETH, DAI, AERO) |
|
|
13
|
+
| **search-for-service** | Search for paid API services via x402 |
|
|
14
|
+
| **pay-for-service** | Make paid API requests via x402 |
|
|
15
|
+
| **fund-wallet** | Get instructions for adding funds to the wallet |
|
|
16
|
+
| **get-agent-identity** | Check on-chain ERC-8004 identity and trust score |
|
|
4
17
|
|
|
5
18
|
## Installation
|
|
6
19
|
|
|
20
|
+
Install with Vercel's [Skills CLI](https://github.com/vercel/skills):
|
|
21
|
+
|
|
7
22
|
```bash
|
|
8
|
-
npx skills add
|
|
23
|
+
npx skills add agnicpay/agnic-wallet-skills
|
|
9
24
|
```
|
|
10
25
|
|
|
11
|
-
##
|
|
26
|
+
## Usage
|
|
12
27
|
|
|
13
|
-
The agent
|
|
28
|
+
Skills are automatically available once installed. The agent will use them when relevant tasks are detected.
|
|
14
29
|
|
|
15
|
-
|
|
16
|
-
npx agnic@latest auth login
|
|
17
|
-
# Opens browser → sign in → set spending limits → done
|
|
18
|
-
```
|
|
30
|
+
Examples:
|
|
19
31
|
|
|
20
|
-
|
|
32
|
+
- `Sign in to my wallet`
|
|
33
|
+
- `Check my balance`
|
|
34
|
+
- `Send 10 USDC to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7`
|
|
35
|
+
- `Swap 5 USDC for ETH`
|
|
36
|
+
- `Find a sentiment analysis API`
|
|
37
|
+
- `Pay for https://api.example.com/data`
|
|
38
|
+
- `What's my agent identity?`
|
|
21
39
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
| **check-balance** | USDC balance across networks |
|
|
26
|
-
| **send-usdc** | Send USDC to a wallet address |
|
|
27
|
-
| **trade-tokens** | Swap tokens on Base (USDC, ETH, etc.) |
|
|
28
|
-
| **search-for-service** | Discover x402-enabled APIs |
|
|
29
|
-
| **pay-for-service** | Make x402 payment requests |
|
|
30
|
-
| **fund-wallet** | Instructions for funding your wallet |
|
|
31
|
-
| **get-agent-identity** | ERC-8004 on-chain identity and trust score |
|
|
40
|
+
## Contributing
|
|
41
|
+
|
|
42
|
+
To add a new skill:
|
|
32
43
|
|
|
33
|
-
|
|
44
|
+
1. Create a folder in `./skills/` with a lowercase, hyphenated name
|
|
45
|
+
2. Add a `SKILL.md` file with YAML frontmatter and instructions
|
|
46
|
+
3. See the [Agent Skills specification](https://github.com/vercel/skills) for the complete format
|
|
34
47
|
|
|
35
|
-
|
|
48
|
+
### Updating the agnic version
|
|
49
|
+
|
|
50
|
+
All skills pin `agnic@latest` via `npx agnic@latest`. When testing against a specific version:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Install a specific version
|
|
54
|
+
npm install -g agnic@2.0.0
|
|
55
|
+
```
|
|
36
56
|
|
|
37
57
|
## Documentation
|
|
38
58
|
|
|
39
59
|
Full docs at [docs.agnic.ai/docs/agnicpay-features/skills](https://docs.agnic.ai/docs/agnicpay-features/skills)
|
|
60
|
+
|
|
61
|
+
## License
|
|
62
|
+
|
|
63
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,51 +1,74 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: authenticate-wallet
|
|
3
|
-
description: Sign in to AgnicPay wallet via browser-based OAuth
|
|
3
|
+
description: Sign in to AgnicPay wallet via browser-based OAuth. Use when you or the user want to authenticate, sign in, log in, connect wallet, or set up the CLI. Covers phrases like "sign in", "log in", "authenticate", "connect my wallet", "set up agnic".
|
|
4
4
|
user-invocable: true
|
|
5
5
|
disable-model-invocation: false
|
|
6
|
-
allowed-tools: ["Bash(npx agnic@latest *)"]
|
|
6
|
+
allowed-tools: ["Bash(npx agnic@latest status*)", "Bash(npx agnic@latest auth *)"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# Authenticating the AgnicPay Wallet
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Use `npx agnic@latest auth login` to authenticate via browser-based OAuth. This opens the user's default browser to AgnicPay where they sign in and set spending limits for the CLI session.
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Confirm wallet is initialized and authed
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
```bash
|
|
16
|
+
npx agnic@latest status
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If already authenticated, no further action is needed. If not authenticated, proceed with login.
|
|
20
|
+
|
|
21
|
+
## Login Flow
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx agnic@latest auth login
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This command:
|
|
28
|
+
1. Starts a temporary local server on a random port
|
|
29
|
+
2. Opens the user's default browser to AgnicPay's OAuth consent screen
|
|
30
|
+
3. The user signs in (email, Google, or wallet) and approves spending limits
|
|
31
|
+
4. The browser redirects back to `http://localhost:<port>/callback`
|
|
32
|
+
5. The CLI exchanges the authorization code for tokens and saves them locally
|
|
20
33
|
|
|
21
|
-
|
|
34
|
+
Wait for the CLI to print `✓ Authenticated!` before proceeding.
|
|
22
35
|
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npx agnic@latest status --json
|
|
26
|
-
```
|
|
36
|
+
## Verify Authentication
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
After login, confirm the session is active:
|
|
29
39
|
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
"authenticated": true,
|
|
33
|
-
"userId": "did:privy:...",
|
|
34
|
-
"email": "user@example.com",
|
|
35
|
-
"walletAddress": "0x...",
|
|
36
|
-
"tokenExpiry": "2026-05-22T..."
|
|
37
|
-
}
|
|
40
|
+
```bash
|
|
41
|
+
npx agnic@latest status
|
|
38
42
|
```
|
|
39
43
|
|
|
40
|
-
|
|
44
|
+
Expected output:
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
```
|
|
47
|
+
Wallet Status
|
|
48
|
+
✓ Authenticated
|
|
49
|
+
|
|
50
|
+
Email: user@example.com
|
|
51
|
+
Wallet: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7
|
|
52
|
+
Expires: 2026-05-22 14:30:00 UTC
|
|
53
|
+
```
|
|
45
54
|
|
|
46
55
|
## Logout
|
|
47
56
|
|
|
48
57
|
To remove stored credentials:
|
|
58
|
+
|
|
49
59
|
```bash
|
|
50
60
|
npx agnic@latest auth logout
|
|
51
61
|
```
|
|
62
|
+
|
|
63
|
+
## Token Storage
|
|
64
|
+
|
|
65
|
+
Credentials are stored in `~/.agnic/config.json` with restricted permissions (`0600`). Tokens auto-refresh on 401 responses — no manual re-authentication needed until the refresh token expires (90 days).
|
|
66
|
+
|
|
67
|
+
## Error Handling
|
|
68
|
+
|
|
69
|
+
Common errors:
|
|
70
|
+
|
|
71
|
+
- "Not authenticated" — Run `npx agnic@latest auth login`
|
|
72
|
+
- "Authentication failed" — User cancelled the browser flow or the timeout (5 min) expired
|
|
73
|
+
- "Could not open browser" — The CLI prints a URL to copy and open manually
|
|
74
|
+
- "Token expired" — Tokens auto-refresh; if refresh also fails, re-run `npx agnic@latest auth login`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: authenticate-wallet
|
|
3
|
+
description: Sign in to AgnicPay wallet. Use when the user wants to log in, authenticate, or when any command fails with auth errors.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Instructions
|
|
7
|
+
|
|
8
|
+
1. Run `npx agnic status` to check current auth state
|
|
9
|
+
2. If not authenticated, ask user for their email
|
|
10
|
+
3. Run `npx agnic auth login <email>` — sends OTP code to their email
|
|
11
|
+
4. Ask user for the 6-digit code from their email
|
|
12
|
+
5. Run `npx agnic auth verify <flowId> <otp>`
|
|
13
|
+
6. Confirm with `npx agnic status`
|
|
14
|
+
|
|
15
|
+
## Allowed Tools
|
|
16
|
+
- npx agnic status
|
|
17
|
+
- npx agnic auth login
|
|
18
|
+
- npx agnic auth verify
|