Legal

Terms of Service

The rules and terms that govern your use of the Bounty platform.

Pre-launch status. This page is a product-accurate description of the current Bounty repository, not final production terms. The operator's legal identity, contact details, effective date, governing law, dispute terms, and other legal provisions have not been supplied. They are omitted instead of guessed. The operator and counsel must complete this document before accepting public transactions.

About Bounty

Bounty is a web application where signed-in users can propose and back requests for work by owners of linked creator accounts. Registered integrations currently cover YouTube, TikTok, Twitch, Instagram, Threads, X, and Pinterest; an integration is linkable only when its operator-supplied credentials are configured. A linked channel owner can accept a bounty, submit a link to completed work, and receive eligible payments through Stripe Connect after supporter review.

In this document, operator means the person or entity that deploys and runs Bounty. The repository does not identify that operator. Supporter means an account that creates or backs a bounty. Channel owner means an account that has linked the target creator account through the application's OAuth flow.

Accounts and channel linking

  • Accounts use email magic links; Bounty does not implement password sign-in.
  • The account holder is responsible for control of the email inbox used to sign in.
  • All accounts use the same application role. Channel-owner permissions come from linking a particular channel.
  • Linking a supported creator account sends you to that platform's OAuth flow. Bounty stores the resulting channel identity and association, not the OAuth access or refresh token.
  • A channel owner must finish Stripe Connect onboarding before accepting a bounty.

Only link a channel that you are authorized to control. Linking or unlinking a channel does not alter the third-party platform account. Unlinking leaves the channel and existing bounties in Bounty but removes the ownership association.

Bounties and pledges

The current workflow allows an authenticated user to create a bounty for a channel with a title, description, and initial pledge. Other authenticated users can add one pledge per account to an active bounty.

Each pledge must currently be between $3.00 and $25.00 USD. Amounts are stored as integer cents. Bounty and pledge details are not private: public bounty pages display bounty content and each supporter's display name, pledge amount, pledge status, and pledge date. If no display name is set, the current page displays "Anonymous supporter" rather than the supporter's email address.

A supporter can remove a pledge only while the bounty is active and only where the current removal route permits it. Removing a pledge deletes the Bounty pledge row, which makes that pledge ineligible for a later charge. Its saved Stripe payment method remains attached to the supporter's Stripe Customer because the same method can back other pledges.

The bounty author or an administrator can cancel an active bounty. After acceptance, the linked channel owner or an administrator can cancel it. The linked channel owner can also reject an active bounty and optionally submit a structured report. Successful cancellation or rejection changes uncharged pending or confirmed pledges to canceled so they are not eligible for a later charge.

Acceptance, completion, and review

The account linked to the target channel can accept an active bounty and set a completion deadline after Stripe reports that account ready for payouts.

That channel owner can mark an accepted bounty complete by submitting an external completion link. Completion starts a 7-day review period. Each pledger can submit one satisfactory or unsatisfactory vote during the review period. An unsatisfactory vote requires a selected reason and can include written details.

Review votes and reasons are not confidential. Signed-in users can retrieve review results for bounties in the applicable review or payout states, including voter names, votes, reasons, reason details, pledge amounts, and review times. Configured administrators can also retrieve review records with account emails.

If all pledgers vote before the deadline, the bounty moves to payout processing early. Otherwise, a scheduled job closes expired review periods and starts payout processing. The current deployment schedule in the repository runs daily, so processing is not guaranteed immediately after a deadline.

Bounties created through the current workflow have an acceptance expiration time. Backend request checks reject and expire an overdue active bounty, and a scheduled job also transitions overdue active bounties to expired. An accepted bounty that passes its completion deadline without submitted work is automatically canceled and its uncharged pledge obligations are released; the completion route enforces that boundary synchronously, and the scheduled job also finds overdue accepted bounties. The current deployment schedule runs that job daily, so scheduled transitions are not guaranteed immediately after a deadline.

Payment mechanics

Saving a payment method

At bounty or pledge checkout, Stripe Elements collects card details and confirms a SetupIntent. This saves a payment method with Stripe for a later off-session charge. No charge is created when the pledge is first made. Bounty stores Stripe identifiers rather than a full card number.

A pledge is therefore a commitment to allow a later attempted charge under the review outcome below. Because the charge happens later, it can fail, require additional action, or be retried.

Which pledges are charged

After review:

  • If at least 60% of submitted votes are satisfactory, every eligible pledge is charged.
  • If fewer than 60% are satisfactory, satisfactory voters and people who did not vote are charged.
  • Unsatisfactory voters are not charged when the result is below 60%; their pledge status is canceled.
  • If no one votes, the current calculation charges all eligible pledges.

The system attempts an off-session Stripe PaymentIntent for each pledge that should pay. Payment failures can enter a retry queue. The code allows up to three payment attempts and records the resulting bounty payout state as charges and eligibility are resolved.

The current product does not implement a general refund endpoint or self-service refund process. A REFUNDED database status and notification type exist, but they do not themselves create a refund. Stripe disputes can be reported back to Bounty through a webhook and marked on the pledge.

Fees and creator payouts

Successful charges use Stripe Connect destination charges. The code calculates an application fee made up of:

  • A 5% platform fee, and
  • A configured estimate of Stripe's card-processing fee, currently 2.9% plus 30 cents for a US card.

Stripe routes the amount remaining after that application fee to the linked creator account. Actual Stripe pricing, taxes, reserves, disputes, currency conversion, and Connect availability can depend on Stripe and the connected account. This repository does not implement tax calculation or promise a particular net payout.

Notifications and communications

Bounty creates in-app notifications for lifecycle, review, and payment events. Email delivery for those event notifications is currently a development stub that writes to server logs; it does not send real messages. Email magic links are sent through the configured SMTP provider.

The Settings page lets an account opt in to or out of optional product-update and marketing emails. Both preferences default to off. Those preferences do not control sign-in links or other transactional, security, or required service messages.

Do not rely on a lifecycle email being delivered. Check the application and the relevant Stripe account for current status.

User responsibilities

When using the current application, do not:

  • Submit content or links you do not have authority to share
  • Put secrets, private data, malicious code, or deceptive links in bounty descriptions, completion links, or review details
  • Misrepresent control of a linked channel or interfere with another user's account or payment
  • Use the service in a way that violates applicable law or a linked platform's rules

The target channel owner can submit a structured bounty report while rejecting an active bounty. The repository does not include a general user-reporting flow, an administrator moderation queue, customer-support tooling, or an appeal workflow. The absence of those tools is not permission to misuse the service.

Third-party services

Current features depend on Stripe; configured integrations for YouTube, TikTok, Twitch, Instagram, Threads, X, and Pinterest; an SMTP email provider; and deployment infrastructure selected by the operator. Those services can apply their own terms, privacy notices, availability limits, and account requirements. Bounty cannot create rights in a third-party channel or content platform.

Features and legal terms that are not established

The current repository does not provide self-service account deletion or data export, mobile applications, comments, a general user-reporting or refund workflow, creator verification beyond channel linking, or guaranteed support response times.

This page intentionally does not invent an operator name, address, contact email, effective date, age rule, governing law, venue, arbitration agreement, liability allocation, indemnity, intellectual-property license, DMCA agent, tax position, privacy-request procedure, or change-notice process. Those are operator and legal decisions, not facts that can be derived from source code.

Before public use, the operator must identify itself, provide working legal and privacy contacts, set an effective date, decide the omitted legal provisions with counsel, and ensure that the final terms and privacy notice match the deployed configuration and operating practices.