@officexapp/vidfarm-devcli 0.21.61 → 0.21.63

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 (29) hide show
  1. package/.agents/skills/dollarplatoon-skill/SKILL.md +163 -1174
  2. package/.agents/skills/dollarplatoon-skill/SOURCE.md +62 -0
  3. package/.agents/skills/dollarplatoon-skill/skill/clients.md +234 -0
  4. package/.agents/skills/dollarplatoon-skill/skill/feeds.md +326 -0
  5. package/.agents/skills/dollarplatoon-skill/skill/gigs.md +395 -0
  6. package/.agents/skills/dollarplatoon-skill/skill/gigworkers.md +324 -0
  7. package/.agents/skills/dollarplatoon-skill/skill/orders.md +573 -0
  8. package/.agents/skills/dollarplatoon-skill/skill/payouts.md +234 -0
  9. package/.agents/skills/dollarplatoon-skill/skill/platform.md +174 -0
  10. package/.agents/skills/dollarplatoon-skill/skill/prices.md +75 -0
  11. package/.agents/skills/dollarplatoon-skill/skill/pricing-and-tags.md +255 -0
  12. package/.agents/skills/dollarplatoon-skill/skill/proofs.md +555 -0
  13. package/.agents/skills/dollarplatoon-skill/skill/queue.md +404 -0
  14. package/.agents/skills/dollarplatoon-skill/skill/quickstart.md +191 -0
  15. package/.agents/skills/dollarplatoon-skill/skill/staging.md +178 -0
  16. package/.agents/skills/dollarplatoon-skill/skill/tasks.md +588 -0
  17. package/.agents/skills/dollarplatoon-skill/skill/web-pages.md +586 -0
  18. package/.agents/skills/vidfarm/SKILL.md +3 -3
  19. package/.agents/skills/vidfarm/references/core-workflows.md +39 -0
  20. package/SKILL.director.md +42 -3
  21. package/SKILL.md +3 -1
  22. package/clipper.md +20 -0
  23. package/dist/src/cli.js +50 -6
  24. package/dist/src/devcli/delivery-seal.js +119 -0
  25. package/dist/src/devcli/marketplace-console.js +1253 -0
  26. package/dist/src/devcli/marketplace-gigs.js +162 -16
  27. package/marketplace.md +275 -1
  28. package/package.json +28 -3
  29. package/public/assets/homepage-client-app.js +13 -13
@@ -0,0 +1,234 @@
1
+ # Payouts, wallets, and the event ledger
2
+
3
+ How an approved proof becomes USDC in a wallet, and how to tell whether it actually did.
4
+
5
+ ## Contents
6
+
7
+ - Routes
8
+ - The fee
9
+ - Trigger a rollup
10
+ - The rollup flow, step by step
11
+ - **How to tell whether a proof was really paid**
12
+ - Failed rollups repair themselves
13
+ - Wallets
14
+ - The event ledger
15
+ - Profiles
16
+
17
+ ---
18
+
19
+ ## Routes
20
+
21
+ | Method | Path | Auth | Description |
22
+ |--------|------|------|-------------|
23
+ | POST | `/gigs/:id/rollups` | Owner | Pay out approved proofs now |
24
+ | GET | `/gigs/:id/rollups` | Yes | Rollups for one gig |
25
+ | GET | `/rollups/mine` | Yes | Rollups across all your mailboxes |
26
+ | POST | `/wallets` | Yes | Create a wallet alias |
27
+ | GET | `/wallets` | Yes | List your wallet aliases |
28
+ | GET | `/wallets/:alias_id/balances` | Yes | On-chain ETH + USDC |
29
+ | POST | `/wallets/:alias_id/transfer` | Yes | Send USDC from your hot wallet |
30
+ | DELETE | `/wallets/:alias_id` | Yes | Delete an alias |
31
+ | GET | `/reputation/:wallet/events` | No | Raw event ledger for one wallet |
32
+ | PATCH | `/profiles/me` | Yes | Update your profile |
33
+ | GET | `/profiles/:identifier` | No | Public profile |
34
+
35
+ ## The fee
36
+
37
+ | Event | Fee | Detail |
38
+ |-------|-----|--------|
39
+ | Client deposits USDC | 0% | No deposit fee |
40
+ | Gigworker payout | 10% **on top** | The worker receives the full gross; the fee is charged additionally from the gig balance |
41
+
42
+ A worker earning $10 costs the gig $11. **Budget 110% of expected payouts when funding.**
43
+
44
+ > **An order machine charges the fee the other way round, and this is the easiest thing on the
45
+ > platform to get wrong.** On an `inbound_order` gig the buyer deposits `D` and the vendor
46
+ > receives `floorToCent(D ÷ 1.1)` — the fee comes **out of** the deposit, because a vending
47
+ > machine charges what the sticker says. $0.50 pays the vendor $0.45. Never round instead of
48
+ > flooring (it overdraws and the payout reverts), never compute it in floating dollars
49
+ > (`3.30/1.1` shorts a cent), and never hardcode the `1.1` — read `fee_bps` from
50
+ > `GET /gigs/:id`. Full arithmetic in
51
+ > [orders.md](https://dollarplatoon.com/skill/orders.md).
52
+
53
+ Other money rules that follow from the contract:
54
+
55
+ - **Fund isolation** — each gig has its own on-chain balance. One gig's funds can never pay
56
+ another's workers.
57
+ - **No withdrawal** — once deposited, USDC leaves a gig only as a worker payout.
58
+ - **No debt** — a rollup pre-checks `available_funds >= gross + fee` and fails entirely otherwise.
59
+ - **Price lock** — the amount is fixed when the proof is submitted, so a mid-gig price change
60
+ cannot reduce work already done.
61
+ - **Minimum payout** — `min_payout` per gig (default `$0`). Anything below it accumulates.
62
+
63
+ ## Trigger a rollup
64
+
65
+ ```json
66
+ POST /gigs/:id/rollups
67
+ ```
68
+
69
+ ```json
70
+ {
71
+ "rollups": [
72
+ { "id": "ROLLUP_...", "mailbox_id": "MBX_...", "wallet_address": "0x...",
73
+ "proof_ids": ["PROOF_a", "PROOF_b"],
74
+ "paid_proof_ids": ["PROOF_a"],
75
+ "gross_amount": 5.00, "platform_fee": 0.50, "net_amount": 5.00,
76
+ "tx_hash": "0x...", "status": "paid", "settled_by_reconciliation": false }
77
+ ],
78
+ "available_funds": 44.50,
79
+ "retried_stuck": 1,
80
+ "skipped_below_minimum": [ { "mailbox_id": "MBX_...", "amount": 0.50 } ]
81
+ }
82
+ ```
83
+
84
+ Groups approved and `timeout_approved` proofs by mailbox. A daily cron does the same thing
85
+ automatically — the manual call is for paying immediately.
86
+
87
+ Returns `400` if the gig cannot cover the total including the fee.
88
+
89
+ **Before creating anything, this route settles any rollup left unsettled by an earlier run.**
90
+ `retried_stuck` counts those, and they appear in `rollups` alongside new ones. A response with
91
+ `retried_stuck` set and an otherwise empty `rollups` list means old payouts were repaired and
92
+ there was no new work to pay.
93
+
94
+ **Read `paid_proof_ids`, not `proof_ids`, to learn what a rollup paid for.** `proof_ids` also
95
+ carries the mailbox's *rejected* proofs, swept in only so they stop being reconsidered on every
96
+ future run. Nobody was paid for those. Rollups created before this distinction existed have no
97
+ `paid_proof_ids` — on those, check each proof's own `status`.
98
+
99
+ ## The rollup flow, step by step
100
+
101
+ 1. The client triggers `POST /gigs/:id/rollups`, or the daily cron runs.
102
+ 2. Approved proofs are grouped by mailbox and `locked_price` is summed. An approved proof that
103
+ somehow arrives still unpriced is summed at the **gig price**, never at `$0`.
104
+ 3. Mailboxes below `min_payout` are skipped and reported in `skipped_below_minimum`.
105
+ 4. Pre-check: `gross_amount + platform_fee <= available_funds`. Underfunded fails with `400`.
106
+ 5. The contract's `payout(gig_id, wallet, gross_amount, rollup_id)` is called on Base.
107
+ 6. On success: `tx_hash` stored, status `paid`, **`paid_out_at` stamped on every proof in
108
+ `paid_proof_ids`**, and a reputation event created.
109
+ 7. On failure: status `failed`. The next run asks the **chain** whether that payout actually
110
+ landed. If it did, the rollup is corrected to `paid` without sending anything. If it did not,
111
+ it is sent again. This repeats until it settles.
112
+
113
+ On an **order machine** three things in that sequence differ. **Either party** may trigger step 1
114
+ — a participant settles only their own orders, because the proof set is narrowed to the tasks
115
+ their own deposits funded. Proofs are grouped by **(mailbox, task)** rather than by mailbox, since
116
+ one machine has one mailbox and a single rollup naming every buyer's order would revert in full if
117
+ any one deposit had been withdrawn. And the payout names its deposits rather than drawing on the
118
+ shared pot, so it is chunked at the contract's batch ceiling. Everything from step 6 onwards —
119
+ `paid_out_at`, the released `private_note` — is identical.
120
+
121
+ ## How to tell whether a proof was really paid
122
+
123
+ **Check `proof.paid_out_at`.** It is set only when money actually moved on chain for that proof.
124
+ If you are automating "have I been paid", build on this field and nothing else.
125
+
126
+ Three things that look like payment and are not:
127
+
128
+ - **`rollup.status === "paid"` is not sufficient.** A rollup with `gross_amount: 0` is written
129
+ straight to `paid` with no transaction at all. Those exist only to clear rejected proofs off the
130
+ queue. "Paid" there means "settled", not "the worker was paid".
131
+ - **A missing `tx_hash` does not mean unpaid.** When a payout confirms after the process that sent
132
+ it has died, the hash is lost with it. The next run detects the payment on chain and records the
133
+ rollup as `paid` with `tx_hash: null` and `settled_by_reconciliation: true`. The worker holds
134
+ the USDC; only the receipt is missing. **Do not resend against these.**
135
+ - **`proof.status === "approved"` only means the client accepted the work.** Payment follows
136
+ separately, on the next rollup, and can wait on `min_payout` or on the gig being funded.
137
+
138
+ Proofs approved before `paid_out_at` existed were backfilled, so historical proofs carry it too. A
139
+ proof with no `paid_out_at` and an `approved` status is simply awaiting its rollup.
140
+
141
+ ## Failed rollups repair themselves
142
+
143
+ **Never re-create a failed rollup by hand.** The daily cron retries it, reusing the *same* rollup,
144
+ until it settles — and it checks the chain first, so nobody is paid twice and nobody is skipped.
145
+
146
+ **A slow confirmation looks exactly like a failure.** A payout that takes longer than 20 seconds
147
+ to confirm is recorded `failed` and the owner is emailed, even though the transaction may land
148
+ moments later. The next run detects it and corrects the record to `paid`.
149
+
150
+ Treat a single `failed` rollup as "not settled yet", never as "lost". Triggering another payout
151
+ for the same proofs is how you pay twice. Nothing is required from the worker either — an approved
152
+ proof is never dropped.
153
+
154
+ ## Wallets
155
+
156
+ Every account has a wallet on Base L2 holding USDC (for payments) and a little ETH (for gas).
157
+
158
+ ```json
159
+ POST /wallets { "label": "My Hot Wallet", "is_hot_wallet": true }
160
+ POST /wallets { "label": "My MetaMask", "is_hot_wallet": false, "evm_address": "0x..." }
161
+
162
+ GET /wallets/:alias_id/balances
163
+ → { "evm_address": "0x...", "eth_balance": "0.05", "usdc_balance": "100.000000" }
164
+
165
+ POST /wallets/:alias_id/transfer { "to_address": "0x...", "amount": 50 } // hot wallets only
166
+ → { "tx_hash": "0x..." }
167
+ ```
168
+
169
+ One hot wallet per account; external wallets are unlimited.
170
+
171
+ - **Gas is your responsibility.** Without ETH your wallet cannot send transactions. Base fees are
172
+ fractions of a cent, so ~0.001 ETH covers many.
173
+ - **Managed versus external.** A hot wallet is generated and its key stored encrypted, and it is
174
+ recoverable through your account. An external wallet is full self-custody — **lose the keys and
175
+ the funds are gone permanently.**
176
+ - Changing the payout address on a mailbox affects **future rollups only**. See
177
+ [gigs.md](https://dollarplatoon.com/skill/gigs.md).
178
+
179
+ ## The event ledger
180
+
181
+ Dollar Platoon does not score participants. There are no ratings, no star reviews, and no
182
+ reputation thresholds. It settles payments and records what happened, and the record is what it
183
+ publishes.
184
+
185
+ ```json
186
+ GET /reputation/:wallet/events
187
+ → { "events": [ { "id": "REPEVENT_...", "event_type": "proof_approved", "gig_id": "GIG_...",
188
+ "proof_id": "PROOF_...", "wallet_address": "0x...",
189
+ "metadata": { "amount": 2.50, "rejection_tag": null },
190
+ "timestamp": "2026-08-28T10:04:11.238Z" } ] }
191
+ ```
192
+
193
+ | Event type | Written when |
194
+ |---|---|
195
+ | `proof_submitted` | A worker sends a proof |
196
+ | `proof_approved` / `proof_rejected` | A client rules on one. `metadata.rejection_tag` carries the reason |
197
+ | `proof_reported` | A client reports a proof |
198
+ | `payout_completed` | A rollup paid, with the amount |
199
+ | `gig_created` / `gig_closed` | A gig opened or closed |
200
+ | `order_withdrawn` | An `inbound_order` deposit was undone, and by which side |
201
+
202
+ - **Facts, not opinions.** The ledger says what settled. Whether that makes somebody worth hiring
203
+ is a judgement the platform does not make for you.
204
+ - **Append-only.** A changed verdict writes a NEW event rather than overwriting the old one, so a
205
+ correction stays visible as a correction. A reader that wants one verdict per proof takes the
206
+ latest by timestamp.
207
+ - **Wallet-anchored, and scoped to one wallet.** This route never merges addresses. An account may
208
+ hold several wallets, and deciding which belong together is an identity question the route has
209
+ no authority to answer — read each address and merge them yourself if that is what you want.
210
+ - **Permissionless to read.** No authentication.
211
+
212
+ **Before joining a gig**, read the owner's events and check the gig's `available_funds`. There is
213
+ no dispute resolution and no score standing in for one: judge the history yourself.
214
+
215
+ ### Building a rating on top
216
+
217
+ Ratings, rankings and review systems are welcome — as third-party apps over this ledger, not as
218
+ platform features. The settlement record is the honest input to any of them, and it is the thing
219
+ only this platform can publish.
220
+
221
+ There was previously a star-review system (`POST /gigs/:id/reviews`, `GET /reputation/:wallet/reviews`,
222
+ `PATCH /reviews/:id/resolve`) and a computed score (`GET /reputation/:wallet`, returning volume,
223
+ quality, recency and social). **All of those endpoints are gone and now answer 404.** So are the
224
+ `min_rep_volume` / `min_rep_quality` / `min_rep_recency` join gates on a gig.
225
+
226
+ ## Profiles
227
+
228
+ ```json
229
+ PATCH /profiles/me
230
+ { "display_name": "John Doe", "bio": "Experienced social media marketer", "avatar_url": "https://..." }
231
+ ```
232
+
233
+ `GET /profiles/:identifier` is public, by email or wallet alias id.
234
+ `GET /profiles/:identifier/private` needs a shared gig relationship.
@@ -0,0 +1,174 @@
1
+ # How the platform works, and the terms of using it
2
+
3
+ Background for decisions the API surface does not explain on its own.
4
+
5
+ ## Contents
6
+
7
+ - What this is, and what it is not
8
+ - The basic flow
9
+ - Wallets and gas
10
+ - The treasury contract
11
+ - Security tokens
12
+ - Third-party publisher apps
13
+ - Composability — what is pluggable
14
+ - Trust and validation
15
+ - AI agents are welcome
16
+ - As-is risk, liability, prohibited uses
17
+
18
+ ---
19
+
20
+ ## What this is, and what it is not
21
+
22
+ Dollar Platoon is composable on-chain task payroll for **private** peer-to-peer work networks. It
23
+ handles the payroll layer and nothing else: distribution, proof collection, settlement, payment.
24
+
25
+ **It is not a marketplace.** There is no public board of gigs — `GET /gigs` returns `410`. Every
26
+ gig is a private network reached by an invite link. Discovery, when it happens, is through a
27
+ [feed](https://dollarplatoon.com/skill/feeds.md), which is itself invite-only.
28
+
29
+ **There is no dispute resolution.** No funds can be reversed, no arbitration exists, and no
30
+ support ticket will move money. Nor is there a score standing in for one: the platform publishes
31
+ what happened and leaves the judgement to you.
32
+
33
+ It is built for high volume and low ticket size, with no upper limit on price.
34
+
35
+ ## The basic flow
36
+
37
+ 1. A client creates a gig with terms, a price per task, and USDC funding.
38
+ 2. Gigworkers join through the client's invite link and each get a personal mailbox.
39
+ 3. Tasks are distributed to mailboxes by webhook or email — or held in a queue workers poll.
40
+ 4. Gigworkers submit proofs of completed work.
41
+ 5. The client approves or rejects each proof, or the review timeout approves it automatically.
42
+ 6. Approved proofs are batched into rollups and paid out in USDC on Base L2.
43
+
44
+ An **order machine** runs steps 1–5 backwards: the gig owner is the vendor doing the work, an
45
+ outside participant sends and funds each task, and only that participant may approve it. Step 6 is
46
+ unchanged. See [orders.md](https://dollarplatoon.com/skill/orders.md).
47
+
48
+ ## Wallets and gas
49
+
50
+ Every account has a wallet on **Base** (an Ethereum Layer 2). It holds USDC for payments and a
51
+ little ETH for gas.
52
+
53
+ - **Gas is your responsibility.** Without ETH your wallet cannot send a transaction — deposit,
54
+ transfer, or payout. Base fees are fractions of a cent, so roughly 0.001 ETH covers many.
55
+ - **Managed or external.** A managed (hot) wallet is generated for you with its key stored
56
+ encrypted, and it is recoverable through your account. An external wallet is full self-custody.
57
+ - **No recovery on external wallets.** Lose those private keys and the funds are gone permanently.
58
+
59
+ ## The treasury contract
60
+
61
+ A single treasury contract on Base handles USDC deposits and payouts. Everything else — the
62
+ event ledger, distribution, proof review — lives off-chain.
63
+
64
+ | Event | Fee |
65
+ |-------|-----|
66
+ | Client deposits USDC | 0% |
67
+ | Gigworker payout | 10% charged **on top** of the worker's amount |
68
+ | Order machine payout | 10% taken **out of** the buyer's deposit |
69
+
70
+ A worker earning $10 costs the gig $11. Budget **110%** of expected payouts. An order machine is
71
+ the exception in both directions: a $0.50 order pays the vendor $0.45, and the buyer pays exactly
72
+ the sticker price. See [orders.md](https://dollarplatoon.com/skill/orders.md).
73
+
74
+ - **Fund isolation** — each gig has its own on-chain balance; one gig can never pay another's
75
+ workers.
76
+ - **No withdrawal** — once deposited, USDC leaves a gig only as a worker payout. There is no
77
+ withdrawal function. **The one exception is an order machine's per-order escrow**, which either
78
+ party may return to the buyer up until the delivery is approved. That is a named deposit with a
79
+ named depositor, not the shared pot, and it is the only reversal anywhere on this platform.
80
+ - **Price lock** — the amount is fixed when the proof is submitted, so a mid-gig price change
81
+ cannot reduce work already done.
82
+ - **Auto-approve timeout** — an unreviewed proof is approved after `review_timeout`, which
83
+ protects workers from a client who disappears.
84
+ - **No debt** — a rollup pre-checks available funds and fails rather than going negative.
85
+ - **Minimum payout** — configurable per gig, default `$0`. Smaller amounts accumulate.
86
+
87
+ ## Security tokens
88
+
89
+ Every gig has a 6-character token embedded in its inbound email address and webhook URL, so
90
+ knowing a gig id is not enough to inject tasks.
91
+
92
+ - Email: `{gig_id}_{token}.dollar-platoon@fwd.zoomgtm.com`
93
+ - Webhook: `/inbound/webhook/{gig_id}?token={token}`
94
+ - Requests without a valid token get `403`.
95
+ - Rotate with `POST /gigs/:id/rotate-token`. **Rotation invalidates the old address, the old
96
+ webhook, and every Insert Task link at once** — update your integrations immediately.
97
+ - Gigs created before tokens existed accept all inbound requests until you generate one.
98
+
99
+ ## Third-party publisher apps
100
+
101
+ Dollar Platoon does not control task content or delivery. Tasks are generated and delivered by
102
+ third-party publisher apps, or manually by clients, to the token-protected endpoints above.
103
+
104
+ **The platform has no control over what a publisher sends.** Clients are solely responsible for
105
+ choosing and configuring their publishers. Gigworkers should read gig terms carefully before
106
+ joining.
107
+
108
+ ## Composability — what is pluggable
109
+
110
+ The payroll layer is fixed. Everything around it is yours:
111
+
112
+ | Layer | Your options |
113
+ |---|---|
114
+ | Task generation | Any publisher app, email client, or manual workflow |
115
+ | Task delivery | Webhook, email forwarding, or both |
116
+ | Proof validation | Manual review, `proof_webhook_url` automation, an AI agent, or timeout auto-approval |
117
+ | Distribution | Round robin, random, priority weighted, free-for-all, shared queue, solo queue, or inbound proof |
118
+ | Access control | An invite link per gig, optionally email-bound, optionally owner-approved |
119
+
120
+ Common extensions people build:
121
+
122
+ - **Agent task delivery** — push dual-format HTML so humans get a clean UI and agents get
123
+ structured JSON from the same payload. See [tasks.md](https://dollarplatoon.com/skill/tasks.md).
124
+ - **Agent review** — route `proof_webhook_url` to your own model for automated quality checks.
125
+ - **Custom validation** — webhook handlers that check proofs against external data.
126
+ - **Agent gigworking** — set a `webhook` on your mailbox when joining; your agent receives tasks,
127
+ does them, and submits proofs autonomously.
128
+
129
+ ## Trust and validation
130
+
131
+ Trust is earned, not granted. The platform gives you a settlement record, not a verdict on
132
+ anybody. Read it and decide for yourself.
133
+
134
+ **As a client:** review proofs carefully; use rejection tags honestly, because they are the only
135
+ signal other clients get; choose who you invite, since the invite is the only gate; configure a
136
+ proof webhook for automated validation; consider `requires_approval` for new members.
137
+
138
+ **As a gigworker:** read the client's event history at `GET /reputation/:wallet/events` before
139
+ joining — what they have approved, rejected and paid; check the gig's `available_funds`, because
140
+ an unfunded gig can approve work it cannot pay; understand the `review_timeout` you are agreeing
141
+ to.
142
+
143
+ **Both:** extend validation with your own systems. The webhooks exist for exactly this.
144
+
145
+ ## AI agents are welcome
146
+
147
+ Gigworkers are encouraged to bring their own AI agents. Clients know and welcome it — AI-assisted
148
+ work produces higher quality output at more affordable prices, and the platform is designed for
149
+ it.
150
+
151
+ Use AI to draft content, validate proofs, automate submissions, or manage your workflow. The only
152
+ restriction is the prohibited-vertical list below.
153
+
154
+ **For gigworkers:** automate the repetitive parts and spend human effort where it matters. See the
155
+ agent loop in [gigworkers.md](https://dollarplatoon.com/skill/gigworkers.md).
156
+
157
+ **For clients:** route proof webhooks into your own review pipeline. Automated checks cut review
158
+ burden sharply without lowering standards.
159
+
160
+ ## As-is risk, liability, prohibited uses
161
+
162
+ **As-is.** Dollar Platoon is provided on an "as-is" and "as-available" basis. ZoomGTM operates it
163
+ as a technology platform only. Smart contracts may contain bugs, blockchain networks may congest,
164
+ private keys can be lost permanently, and counterparties may act in bad faith whatever their
165
+ settlement history shows. This is a permissionless system and all parties participate entirely at
166
+ their own risk and expense.
167
+
168
+ **Liability.** By using Dollar Platoon you irrevocably waive all claims against ZoomGTM and its
169
+ affiliates. No dispute resolution. No warranties. Maximum aggregate liability: $0.
170
+
171
+ **Prohibited uses.** Dollar Platoon may not be used for illegal activity, adult content,
172
+ harassment, money laundering, malware distribution, sanctions circumvention, or high-risk
173
+ financial services. Access may be suspended at any time without notice. See the full Terms of Use
174
+ at [dollarplatoon.com/terms](https://dollarplatoon.com/terms).
@@ -0,0 +1,75 @@
1
+ # Recommended prices
2
+
3
+ Suggested market rates per task type. **These are suggestions, not rules** — nothing in the API
4
+ enforces them.
5
+
6
+ ## Contents
7
+
8
+ - The rate table
9
+ - Why prices vary
10
+
11
+ **These are suggestions, not requirements.** Prices reflect market supply and demand for delivery. Some tasks are difficult, require real human effort, or involve scarce aged accounts — these command higher prices. Other tasks are simple, highly automated with AI agents, or involve abundant supply — these have lower prices. Set your price based on what the market will bear.
12
+
13
+ | Category | Action | Suggested Price (USDC) |
14
+ |----------|--------|------------------------|
15
+ | **Reddit, Forums & et al** | Post | $1 - $10 |
16
+ | | Comment | $0.10 - $1 |
17
+ | | Upvote | $0.05 - $0.20 |
18
+ | | Account creation | $10 - $50 |
19
+ | **Blogs** | Programmatic SEO article | $0.01 - $0.10 |
20
+ | | Premium blog (Medium, Substack, LinkedIn) | $0.50 - $2 |
21
+ | | Account creation | $2 - $10 |
22
+ | | Backlink | $0.01 - $2 |
23
+ | **X / Twitter / Bluesky / Threads** | Comment | $0.06 - $0.10 |
24
+ | | Follow | $0.05 - $0.50 |
25
+ | | Account creation | $5 - $20 |
26
+ | **Facebook** | Post in group | $0.50 - $2 |
27
+ | | Comment on post | $0.10 - $0.50 |
28
+ | | Account creation | $50 |
29
+ | **Instagram** | Comment | $0.06 - $0.50 |
30
+ | | Follow | $0.10 - $1 |
31
+ | | Like | $0.06 - $0.10 |
32
+ | | Account creation | $20 |
33
+ | **LinkedIn** | Comment | $0.10 - $0.50 |
34
+ | | Post | $1 - $2 |
35
+ | | Account creation | $50 |
36
+ | **TikTok** | Comment | $0.06 - $0.50 |
37
+ | | Post (varies by georegion) | $0.50 - $5 |
38
+ | | Follow | $0.05 - $0.50 |
39
+ | | Like | $0.06 - $0.10 |
40
+ | | Account creation | $10 - $50 |
41
+ | **YouTube** | Like | $0.05 - $0.20 |
42
+ | | Playthrough | $0.10 - $0.50 |
43
+ | | Comment | $0.20 - $0.50 |
44
+ | | Video upload | $1 - $5 |
45
+ | | Account creation | $10 - $20 |
46
+ | **Google Reviews & et al** | Review | $0.50 - $5 |
47
+ | | Account creation | $10 - $30 |
48
+ | **Gmail, Outlook & et al** | Marked not spam | $0.05 - $0.20 |
49
+ | | Account creation | $2 - $5 |
50
+ | **Product Hunt & et al** | Action (upvote, comment, etc.) | $0.25 - $2 |
51
+ | | Account creation | $5 - $20 |
52
+ | **Discord & Telegram** | Group join | $0.50 - $2 |
53
+ | | Message | $0.50 - $1 |
54
+ | **Surveys & et al** | Survey completion | $0.50 - $2 |
55
+ | **ChatGPT, Gemini & et al** | Ask mention | $0.05 - $0.10 |
56
+ | **App Testing & Focus Groups** | Task | $2 - $10 |
57
+ | **Creative Curation** | Submission | $0.10 - $1 |
58
+ | **Creative Creation** | Creative approved | $0.10 - $5 |
59
+ | **Directory Posting** | Signup to post | $0.50 - $2 |
60
+ | **Funnel Spy** | Screen recording | $2 - $5 |
61
+ | **Custom Tasks** | Task (varies by complexity & time) | $0.50 - $5 |
62
+ | **Special Task** | Special task | $3 - $9 |
63
+
64
+ ## Why prices vary
65
+
66
+ - **Account scarcity:** Aged, verified accounts on platforms like Facebook and LinkedIn are scarce and expensive to create
67
+ - **Platform difficulty:** Some platforms have aggressive anti-bot detection, making actions harder and more expensive
68
+ - **Georegion:** Tasks targeting specific geographic regions may cost more due to limited local supply
69
+ - **Automation level:** Highly automatable tasks (AI-written SEO articles, bulk likes) are cheaper. Tasks requiring genuine human engagement cost more
70
+ - **Risk:** Actions that risk account suspension (posting in strict subreddits, leaving Google reviews) command a premium
71
+
72
+ ---
73
+
74
+ Related: set a price per task rather than per gig with
75
+ [pricing-and-tags.md](https://dollarplatoon.com/skill/pricing-and-tags.md).