@bankofbots/skill 0.4.1 → 0.5.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/SKILL.md +46 -64
- package/package.json +1 -1
- package/references/commands.md +5 -48
- package/references/errors.md +2 -2
- package/references/proofs.md +45 -34
- package/references/scoring.md +5 -7
package/SKILL.md
CHANGED
|
@@ -10,14 +10,13 @@ metadata: '{"openclaw":{"requires":{"env":["BOB_API_KEY","BOB_AGENT_ID"]},"optio
|
|
|
10
10
|
|
|
11
11
|
## Core concepts
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
BOB (beta) is a non-custodial payment proof and trust layer. Agents submit cryptographic proofs of Bitcoin payments they made externally. Each proof builds credit history and raises their BOB Score — a 0–1000 reputation score that represents long-term financial trustworthiness.
|
|
14
14
|
|
|
15
15
|
- **Agent**: An AI agent with its own identity and BOB Score
|
|
16
|
-
- **Payment
|
|
17
|
-
- **Payment Proof**: Cryptographic evidence of a BTC payment (onchain txid, Lightning payment hash, or preimage)
|
|
16
|
+
- **Payment Proof**: Cryptographic evidence of an on-chain transaction (BTC, ETH, Base, or SOL txid/hash)
|
|
18
17
|
- **BOB Score**: 0–1000 reputation score derived from proof history, wallet binding, and social signals
|
|
19
18
|
- **Credit Event**: A scored action that changed the agent's BOB Score (proof submitted, wallet bound, etc.)
|
|
20
|
-
- **Wallet Binding**: Proof of ownership over an external EVM
|
|
19
|
+
- **Wallet Binding**: Proof of ownership over an external EVM wallet — a trust signal for BOB Score
|
|
21
20
|
|
|
22
21
|
## Commands
|
|
23
22
|
|
|
@@ -45,63 +44,25 @@ bob agent list
|
|
|
45
44
|
bob agent approve <agent-id>
|
|
46
45
|
```
|
|
47
46
|
|
|
48
|
-
|
|
47
|
+
<!-- Payment intents and Lightning proofs are not yet available. Currently only historical on-chain proof imports are supported. -->
|
|
48
|
+
<!-- ### Quote and execute payment intents / ### Submit payment proofs — DISABLED -->
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
### Submit on-chain proofs (primary flow)
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
# Quote routes for a BTC payment
|
|
54
|
-
bob intent quote <agent-id> --amount <sats> --destination-type raw --destination-ref <lnbc...|bc1...>
|
|
55
|
-
|
|
56
|
-
# Execute a quoted intent (uses best quote by default)
|
|
57
|
-
bob intent execute <agent-id> <intent-id> [--quote-id <id>]
|
|
58
|
-
|
|
59
|
-
# Check intent status
|
|
60
|
-
bob intent get <agent-id> <intent-id>
|
|
61
|
-
|
|
62
|
-
# List recent intents
|
|
63
|
-
bob intent list <agent-id>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
| Flag | Description |
|
|
67
|
-
|---|---|
|
|
68
|
-
| `--amount` | Required. Amount in satoshis |
|
|
69
|
-
| `--destination-type` | `raw` or `bob_address` |
|
|
70
|
-
| `--destination-ref` | Lightning invoice, on-chain address, or `alias@bobscore.ai` |
|
|
71
|
-
| `--priority` | `cheapest`, `fastest`, or `balanced` (default: balanced) |
|
|
72
|
-
| `--rail` | Pin to a specific rail: `lightning` or `onchain` |
|
|
73
|
-
|
|
74
|
-
### Submit payment proofs
|
|
75
|
-
|
|
76
|
-
Proofs are the primary way to build credit history and increase BOB Score.
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
# Submit an on-chain BTC proof
|
|
80
|
-
bob intent submit-proof <agent-id> <intent-id> --txid <txid>
|
|
81
|
-
|
|
82
|
-
# Submit a Lightning payment hash
|
|
83
|
-
bob intent submit-proof <agent-id> <intent-id> --payment-hash <hash>
|
|
84
|
-
|
|
85
|
-
# Submit a Lightning preimage (strongest confidence)
|
|
86
|
-
bob intent submit-proof <agent-id> <intent-id> --preimage <hex> --proof-ref <payment-hash>
|
|
87
|
-
|
|
88
|
-
# List proofs submitted for an intent
|
|
89
|
-
bob intent proofs <agent-id> <intent-id>
|
|
90
|
-
```
|
|
52
|
+
Agents submit historical on-chain transaction proofs. BOB verifies them on the public ledger and awards credit.
|
|
91
53
|
|
|
92
54
|
**Proof confidence tiers** (strongest → weakest):
|
|
93
|
-
- `strong` —
|
|
94
|
-
- `medium` — payment hash verified
|
|
55
|
+
- `strong` — on-chain tx confirmed (sufficient confirmations on public ledger)
|
|
95
56
|
- `provisional` — on-chain tx detected, awaiting confirmations
|
|
96
|
-
- `low` — unverified
|
|
97
57
|
|
|
98
58
|
Proof responses include a `credit` object with `awarded`, `delta`, and `reason` so agents can track score impact.
|
|
99
59
|
|
|
100
|
-
### Import historical
|
|
60
|
+
### Import historical on-chain proofs
|
|
101
61
|
|
|
102
|
-
Build credit history
|
|
62
|
+
Build credit history by importing on-chain transactions. BOB verifies each tx on the public ledger and awards credit.
|
|
103
63
|
|
|
104
64
|
```bash
|
|
65
|
+
# BTC on-chain
|
|
105
66
|
bob agent credit-import <agent-id> \
|
|
106
67
|
--proof-type btc_onchain_tx \
|
|
107
68
|
--proof-ref <txid> \
|
|
@@ -110,9 +71,32 @@ bob agent credit-import <agent-id> \
|
|
|
110
71
|
--amount <sats> \
|
|
111
72
|
--direction outbound
|
|
112
73
|
|
|
113
|
-
#
|
|
114
|
-
|
|
115
|
-
|
|
74
|
+
# ETH on-chain (Ethereum mainnet)
|
|
75
|
+
bob agent credit-import <agent-id> \
|
|
76
|
+
--proof-type eth_onchain_tx \
|
|
77
|
+
--proof-ref <0x...txhash> \
|
|
78
|
+
--rail ethereum \
|
|
79
|
+
--currency ETH \
|
|
80
|
+
--amount <gwei> \
|
|
81
|
+
--direction outbound
|
|
82
|
+
|
|
83
|
+
# Base L2 on-chain
|
|
84
|
+
bob agent credit-import <agent-id> \
|
|
85
|
+
--proof-type base_onchain_tx \
|
|
86
|
+
--proof-ref <0x...txhash> \
|
|
87
|
+
--rail base \
|
|
88
|
+
--currency ETH \
|
|
89
|
+
--amount <gwei> \
|
|
90
|
+
--direction outbound
|
|
91
|
+
|
|
92
|
+
# Solana on-chain
|
|
93
|
+
bob agent credit-import <agent-id> \
|
|
94
|
+
--proof-type sol_onchain_tx \
|
|
95
|
+
--proof-ref <txsig> \
|
|
96
|
+
--rail solana \
|
|
97
|
+
--currency SOL \
|
|
98
|
+
--amount <lamports> \
|
|
99
|
+
--direction outbound
|
|
116
100
|
|
|
117
101
|
# List imported historical proofs
|
|
118
102
|
bob agent credit-imports <agent-id> [--limit 50] [--offset 0]
|
|
@@ -160,8 +144,8 @@ bob score signals --signal github --visible true
|
|
|
160
144
|
**Trust signals that drive score:**
|
|
161
145
|
- Email (10 pts), Phone (10 pts), GitHub (20 pts), Twitter/X (20 pts)
|
|
162
146
|
- KYC/Identity (75 pts), Deposit (100 pts)
|
|
163
|
-
- EVM wallet binding (variable)
|
|
164
|
-
-
|
|
147
|
+
- EVM wallet binding (variable)
|
|
148
|
+
- On-chain proof history (1–10 pts per proof, by amount + confirmation depth)
|
|
165
149
|
|
|
166
150
|
### Bind a wallet (trust signal for BOB Score)
|
|
167
151
|
|
|
@@ -170,10 +154,6 @@ bob score signals --signal github --visible true
|
|
|
170
154
|
bob binding evm-challenge
|
|
171
155
|
bob binding evm-verify --address <0x...> --signature <sig>
|
|
172
156
|
|
|
173
|
-
# Lightning node
|
|
174
|
-
bob binding lightning-challenge <agent-id>
|
|
175
|
-
bob binding lightning-verify <agent-id> --node-pubkey <pubkey> --signature <sig>
|
|
176
|
-
|
|
177
157
|
# List bindings
|
|
178
158
|
bob binding list
|
|
179
159
|
|
|
@@ -181,6 +161,8 @@ bob binding list
|
|
|
181
161
|
bob binding delete <binding-id>
|
|
182
162
|
```
|
|
183
163
|
|
|
164
|
+
<!-- Lightning node binding is not yet available. -->
|
|
165
|
+
|
|
184
166
|
### Social signals
|
|
185
167
|
|
|
186
168
|
```bash
|
|
@@ -202,7 +184,7 @@ bob webhook update <agent-id> <webhook-id> --active true
|
|
|
202
184
|
bob webhook delete <agent-id> <webhook-id>
|
|
203
185
|
```
|
|
204
186
|
|
|
205
|
-
**
|
|
187
|
+
**Event types:** `proof.verified`, `proof.rejected`, `credit.updated`
|
|
206
188
|
|
|
207
189
|
### Inbox
|
|
208
190
|
|
|
@@ -251,13 +233,13 @@ Always check `ok` before using `data`. When `ok` is false, `data.error` contains
|
|
|
251
233
|
|---|---|
|
|
252
234
|
| `403 Forbidden` | Run `bob auth me` — API key may be invalid or agent not approved |
|
|
253
235
|
| `429 Too Many Requests` | Back off and retry; check `next_actions` for suggested wait |
|
|
254
|
-
| Proof verification failed |
|
|
236
|
+
| Proof verification failed | Confirm the tx is settled on-chain with sufficient confirmations |
|
|
255
237
|
| Challenge expired | Re-run the challenge command to get a fresh nonce |
|
|
256
238
|
| Claim code rejected | Generate a new one from the dashboard |
|
|
257
239
|
|
|
258
240
|
## Important rules
|
|
259
241
|
|
|
260
|
-
1. **Amounts** are
|
|
261
|
-
2. **Proofs are non-custodial** — Bank of Bots never holds
|
|
262
|
-
3. **
|
|
242
|
+
1. **Amounts** are in satoshis (BTC), gwei (ETH), or lamports (SOL).
|
|
243
|
+
2. **Proofs are non-custodial** — Bank of Bots never holds funds. You transact externally and submit on-chain proof.
|
|
244
|
+
3. **On-chain only** — Currently only historical on-chain proof imports are supported. Payment intents and Lightning proofs are not yet available.
|
|
263
245
|
4. **next_actions**: Every response includes suggested follow-up commands. Follow them to discover what to do next.
|
package/package.json
CHANGED
package/references/commands.md
CHANGED
|
@@ -23,50 +23,9 @@ bob agent credit-import <agent-id> --proof-type <type> --proof-ref <ref> \
|
|
|
23
23
|
bob agent credit-imports <agent-id> [--limit 50] [--offset 0]
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
bob intent quote <agent-id> \
|
|
30
|
-
--amount <sats> \
|
|
31
|
-
--destination-type raw \
|
|
32
|
-
--destination-ref <lnbc...|bc1...>
|
|
33
|
-
|
|
34
|
-
bob intent execute <agent-id> <intent-id> [--quote-id <id>]
|
|
35
|
-
bob intent get <agent-id> <intent-id>
|
|
36
|
-
bob intent list <agent-id>
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
| Flag | Description |
|
|
40
|
-
|---|---|
|
|
41
|
-
| `--amount` | Required. Satoshis for BTC, gwei for ETH, lamports for SOL |
|
|
42
|
-
| `--destination-type` | `raw` or `bob_address` |
|
|
43
|
-
| `--destination-ref` | Lightning invoice, on-chain address, or `alias@bobscore.ai` |
|
|
44
|
-
| `--priority` | `cheapest`, `fastest`, or `balanced` (default: balanced) |
|
|
45
|
-
| `--rail` | Pin to `lightning`, `onchain`, `ethereum`, `base`, or `solana` |
|
|
46
|
-
| `--currency` | `BTC` (default), `ETH`, `SOL` |
|
|
47
|
-
| `--max-fee` | Max fee in base units |
|
|
48
|
-
|
|
49
|
-
## Proof submission
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
# On-chain BTC
|
|
53
|
-
bob intent submit-proof <agent-id> <intent-id> --txid <txid>
|
|
54
|
-
|
|
55
|
-
# Lightning payment hash
|
|
56
|
-
bob intent submit-proof <agent-id> <intent-id> --payment-hash <hash>
|
|
57
|
-
|
|
58
|
-
# Lightning preimage (strongest)
|
|
59
|
-
bob intent submit-proof <agent-id> <intent-id> \
|
|
60
|
-
--preimage <hex> --proof-ref <payment-hash>
|
|
61
|
-
|
|
62
|
-
# EVM or Solana
|
|
63
|
-
bob intent submit-proof <agent-id> <intent-id> \
|
|
64
|
-
--proof-type eth_onchain_tx --proof-ref <txhash> [--chain-id 0x1]
|
|
65
|
-
bob intent submit-proof <agent-id> <intent-id> \
|
|
66
|
-
--proof-type sol_onchain_tx --proof-ref <txsig>
|
|
67
|
-
|
|
68
|
-
bob intent proofs <agent-id> <intent-id> # list proofs for intent
|
|
69
|
-
```
|
|
26
|
+
<!-- Payment intents and Lightning proofs are not yet available. Currently only historical on-chain proof imports are supported. -->
|
|
27
|
+
<!-- ## Intent workflow (quote → inspect → execute) — DISABLED -->
|
|
28
|
+
<!-- ## Proof submission (bob intent submit-proof) — DISABLED -->
|
|
70
29
|
|
|
71
30
|
## BOB Score
|
|
72
31
|
|
|
@@ -83,12 +42,10 @@ bob score signals --signal github --visible true
|
|
|
83
42
|
# EVM wallet (MetaMask, Coinbase, etc.)
|
|
84
43
|
bob binding evm-challenge --address <0x...>
|
|
85
44
|
bob binding evm-verify --challenge-id <id> --address <0x...> --signature <sig> [--chain-id 0x1]
|
|
86
|
-
|
|
87
|
-
# Lightning node
|
|
88
|
-
bob binding lightning-challenge <agent-id>
|
|
89
|
-
bob binding lightning-verify <agent-id> --challenge-id <id> --signature <sig>
|
|
90
45
|
```
|
|
91
46
|
|
|
47
|
+
<!-- Lightning node binding is not yet available. -->
|
|
48
|
+
|
|
92
49
|
## Social signals
|
|
93
50
|
|
|
94
51
|
```bash
|
package/references/errors.md
CHANGED
|
@@ -16,9 +16,9 @@ Every failed command returns `ok: false` with `data.error` and `next_actions`. A
|
|
|
16
16
|
| 429 Too Many Requests | Back off and retry. Check `next_actions` for suggested wait. |
|
|
17
17
|
| 409 Conflict | Resource already exists. Run `bob agent get` or `bob intent get` to confirm state. |
|
|
18
18
|
| Proof already submitted | Duplicate proof ref — already counted. Check `bob agent credit-events <agent-id>`. |
|
|
19
|
-
| Challenge expired | Re-run the binding challenge command (`bob binding evm-challenge`
|
|
19
|
+
| Challenge expired | Re-run the binding challenge command (`bob binding evm-challenge`). |
|
|
20
20
|
| Claim code rejected | Generate a new code from the dashboard. |
|
|
21
|
-
| Proof verification failed |
|
|
21
|
+
| Proof verification failed | Confirm the tx is settled on-chain with sufficient confirmations. Double-check the txid/hash and chain. |
|
|
22
22
|
|
|
23
23
|
## Output format
|
|
24
24
|
|
package/references/proofs.md
CHANGED
|
@@ -1,55 +1,67 @@
|
|
|
1
1
|
# BOB Score — Proof Submission
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agents submit historical on-chain transaction proofs. BOB verifies each tx on the public ledger and awards credit.
|
|
4
|
+
|
|
5
|
+
<!-- Payment intents and Lightning proofs (btc_lightning_preimage, btc_lightning_payment_hash) are not yet available. Currently only historical on-chain proof imports are supported. -->
|
|
4
6
|
|
|
5
7
|
## Proof types
|
|
6
8
|
|
|
7
9
|
| Type | Flag(s) | Confidence | What it proves |
|
|
8
10
|
|---|---|---|---|
|
|
9
|
-
| `
|
|
10
|
-
| `
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `base_onchain_tx` | `--proof-type base_onchain_tx --proof-ref <txhash>` | **medium→strong** | Base L2 on-chain tx |
|
|
14
|
-
| `sol_onchain_tx` | `--proof-type sol_onchain_tx --proof-ref <txsig>` | **medium→strong** | Solana on-chain tx |
|
|
15
|
-
|
|
16
|
-
## Submit proof against a payment intent
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
# BTC on-chain
|
|
20
|
-
bob intent submit-proof <agent-id> <intent-id> --txid <txid>
|
|
11
|
+
| `btc_onchain_tx` | `--proof-type btc_onchain_tx --proof-ref <txid>` | **provisional→strong** | BTC on-chain tx confirmed (upgrades as confirmations accumulate) |
|
|
12
|
+
| `eth_onchain_tx` | `--proof-type eth_onchain_tx --proof-ref <txhash>` | **provisional→strong** | Ethereum mainnet on-chain tx |
|
|
13
|
+
| `base_onchain_tx` | `--proof-type base_onchain_tx --proof-ref <txhash>` | **provisional→strong** | Base L2 on-chain tx |
|
|
14
|
+
| `sol_onchain_tx` | `--proof-type sol_onchain_tx --proof-ref <txsig>` | **provisional→strong** | Solana on-chain tx |
|
|
21
15
|
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
**Confidence tiers:**
|
|
17
|
+
- `strong` — on-chain tx confirmed with sufficient confirmations on public ledger
|
|
18
|
+
- `provisional` — on-chain tx detected, awaiting confirmations
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
bob intent submit-proof <agent-id> <intent-id> \
|
|
27
|
-
--preimage <hex> --proof-ref <payment-hash>
|
|
20
|
+
<!-- Intent-based proof submission (bob intent submit-proof) is not yet available. -->
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
bob intent submit-proof <agent-id> <intent-id> \
|
|
31
|
-
--proof-type eth_onchain_tx --proof-ref <0x...txhash> --chain-id 0x1
|
|
22
|
+
## Import historical on-chain proofs (primary flow)
|
|
32
23
|
|
|
33
|
-
|
|
34
|
-
bob intent submit-proof <agent-id> <intent-id> \
|
|
35
|
-
--proof-type sol_onchain_tx --proof-ref <txsig>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Import historical proofs (credit building)
|
|
39
|
-
|
|
40
|
-
For payments that happened before BOB tracking was set up:
|
|
24
|
+
Submit on-chain transactions you made externally. BOB verifies them on the public ledger and awards credit.
|
|
41
25
|
|
|
42
26
|
```bash
|
|
27
|
+
# BTC on-chain
|
|
43
28
|
bob agent credit-import <agent-id> \
|
|
44
|
-
--proof-type
|
|
45
|
-
--proof-ref <
|
|
46
|
-
--rail
|
|
29
|
+
--proof-type btc_onchain_tx \
|
|
30
|
+
--proof-ref <txid> \
|
|
31
|
+
--rail onchain \
|
|
47
32
|
--currency BTC \
|
|
48
33
|
--amount <sats> \
|
|
49
34
|
--direction outbound
|
|
35
|
+
|
|
36
|
+
# ETH on-chain (Ethereum mainnet)
|
|
37
|
+
bob agent credit-import <agent-id> \
|
|
38
|
+
--proof-type eth_onchain_tx \
|
|
39
|
+
--proof-ref <0x...txhash> \
|
|
40
|
+
--rail ethereum \
|
|
41
|
+
--currency ETH \
|
|
42
|
+
--amount <gwei> \
|
|
43
|
+
--direction outbound
|
|
44
|
+
|
|
45
|
+
# Base L2 on-chain
|
|
46
|
+
bob agent credit-import <agent-id> \
|
|
47
|
+
--proof-type base_onchain_tx \
|
|
48
|
+
--proof-ref <0x...txhash> \
|
|
49
|
+
--rail base \
|
|
50
|
+
--currency ETH \
|
|
51
|
+
--amount <gwei> \
|
|
52
|
+
--direction outbound
|
|
53
|
+
|
|
54
|
+
# Solana on-chain
|
|
55
|
+
bob agent credit-import <agent-id> \
|
|
56
|
+
--proof-type sol_onchain_tx \
|
|
57
|
+
--proof-ref <txsig> \
|
|
58
|
+
--rail solana \
|
|
59
|
+
--currency SOL \
|
|
60
|
+
--amount <lamports> \
|
|
61
|
+
--direction outbound
|
|
50
62
|
```
|
|
51
63
|
|
|
52
|
-
Supported `--proof-type` values: `btc_onchain_tx`, `
|
|
64
|
+
Supported `--proof-type` values: `btc_onchain_tx`, `eth_onchain_tx`, `base_onchain_tx`, `sol_onchain_tx`
|
|
53
65
|
|
|
54
66
|
Historical imports are capped — they count toward score but cannot substitute for ongoing payment history.
|
|
55
67
|
|
|
@@ -57,5 +69,4 @@ Historical imports are capped — they count toward score but cannot substitute
|
|
|
57
69
|
|
|
58
70
|
- Each verified proof emits a credit event with `awarded`, `delta`, and `reason`
|
|
59
71
|
- Amount thresholds: floor is 1,000 sats / 1,000,000 gwei / 1,000,000 lamports
|
|
60
|
-
- Preimage proofs earn the highest confidence tier
|
|
61
72
|
- Duplicate proof refs are deduplicated — same txid/hash twice doesn't double-count
|
package/references/scoring.md
CHANGED
|
@@ -25,8 +25,7 @@ New agents start at 350 (Verified tier). Tier multipliers only apply when credit
|
|
|
25
25
|
| Twitter/X connected | 20 |
|
|
26
26
|
| KYC/Identity verified | 75 |
|
|
27
27
|
| EVM wallet binding | up to 50 (based on wallet history) |
|
|
28
|
-
|
|
|
29
|
-
| Payment proof (per proof) | 1–10 pts based on amount + confidence |
|
|
28
|
+
| On-chain proof (per proof) | 1–10 pts based on amount + confirmation depth |
|
|
30
29
|
|
|
31
30
|
## Credit events
|
|
32
31
|
|
|
@@ -40,11 +39,10 @@ Negative:
|
|
|
40
39
|
|
|
41
40
|
## How to build score fast
|
|
42
41
|
|
|
43
|
-
1. **
|
|
44
|
-
2. **
|
|
45
|
-
3. **
|
|
46
|
-
4. **
|
|
47
|
-
5. **Connect social accounts** — GitHub (20 pts), Twitter/X (20 pts)
|
|
42
|
+
1. **Import historical on-chain proofs** — submit BTC, ETH, Base, or SOL tx proofs; BOB verifies on the public ledger and awards credit
|
|
43
|
+
2. **Bind an EVM wallet** — wallet with transaction history adds up to 50 pts
|
|
44
|
+
3. **Connect social accounts** — GitHub (20 pts), Twitter/X (20 pts)
|
|
45
|
+
4. **Complete KYC** — identity verification adds 75 pts
|
|
48
46
|
|
|
49
47
|
## Check your score
|
|
50
48
|
|