Most Web3 projects don’t start with a blank Terms of Service. They start with a standard Terms and Conditions template, the kind built for a SaaS product or an ecommerce store, and edit it until it sounds like it applies. That approach gets the boilerplate right: limitation of liability, user accounts, termination, governing law. It also quietly leaves out the clauses that matter most for a platform where the actual transaction happens on a public blockchain the company doesn’t control. Here’s what a standard T&C already covers, what it gets wrong once wallets and smart contracts enter the picture, and what has no equivalent in a generic template at all.

The Clause-by-Clause Comparison

A standard T&C and a Web3 ToS overlap on structure, both have a liability clause, a dispute resolution clause, a user content clause, but the assumptions baked into each one are different enough that copying the standard version over usually creates a document that doesn’t match how the platform actually works.

Standard T&C vs Web3 Terms of Service

Standard T&CWeb3 ToS needs
RefundsCompany can reverse a chargeOn-chain transactions can't be reversed
CustodyNot addressed; sits with a processorPlatform never holds funds or keys
LiabilityCaps damages, excludes indirect lossesNo guarantee of bug-free contract code
IdentityName, email, payment method on fileMay be a pseudonymous wallet address
TerminationEnding the account ends all accessPlatform can't touch assets on-chain
New disclosureNo equivalent clause existsToken status: not a security

The rest of this post walks through the rows that need the most rewriting, in the order they tend to trip up a first draft.

Refunds: From “We’ll Make It Right” to “We Can’t”

A standard refund clause, even a strict one, is written around the idea that the company has a lever to pull: a payment processor it can ask to reverse a charge, an order it can cancel before it ships, an account balance it can credit. That lever doesn’t exist once a transaction confirms on a public blockchain. The platform facilitated the transaction between a user’s wallet and a smart contract, but it never had custody of the funds, so there’s no charge for it to reverse and no internal ledger entry to undo. “All sales are final” is directionally correct for a mint or an on-chain swap, but stated alone it reads like a policy choice rather than a technical constraint, and it invites the exact chargeback disputes it’s supposed to prevent. The version that holds up explains the mechanism: transactions settle on a ledger the platform cannot alter, gas fees go to the network rather than to the company, and users are responsible for verifying the recipient address and network before they confirm anything.

Custody and Wallet-Connect: A Clause With No Standard Equivalent

Search a generic T&C for a custody clause and you won’t find one, because ecommerce and SaaS platforms don’t need to say they don’t hold your money in some separate, unencumbered sense; a payment processor handles that layer and the T&C doesn’t have to explain how. A Web3 platform is different precisely because it usually never touches user funds at all. The user connects a self-custodial wallet and approves each transaction individually; the platform only proposes what the wallet should sign. That’s a meaningfully different relationship than “the company holds your payment method on file,” and a document that doesn’t say so leaves users, especially ones coming from a banking or centralized-exchange background, assuming a level of recoverability that doesn’t exist. If someone loses a seed phrase, the platform has no account-recovery flow to fall back on, because it was never the custodian to begin with. That has to be stated in the terms, not left implied by a “Connect Wallet” button, alongside what permissions the connection actually grants and who’s on the hook if a user approves a malicious transaction from a phishing site impersonating the platform’s interface.

Liability: The Smart Contract Gap

A standard limitation-of-liability clause caps damages at fees paid and disclaims indirect or consequential losses. That structure still applies to a Web3 platform, but it’s missing a category of risk a generic template never anticipated: the platform’s own smart contract code failing or being exploited. Even an audited contract can have a bug, and the standard “provided as is, no warranties” language doesn’t specifically address that the exploit, once a transaction executes, is as irreversible as any other on-chain action.

Standard liability clause
  • Service provided as is, no warranties of any kind
  • Liability capped at fees paid in the prior 12 months
  • No liability for indirect or consequential damages
Web3-adapted liability clause
  • Same base disclaimer and damages cap, plus:
  • No guarantee smart contracts are error-free or immune to exploits
  • No liability for losses from network congestion, forked chains, or third-party wallet compromise

If an audit was actually performed, naming the firm strengthens the clause. Implying an audit makes the contract risk-free, or citing one that never happened, creates a liability problem of its own.

Dispute Resolution: When You Can’t Identify the Other Party

A standard arbitration and governing-law clause assumes something a Web3 platform can’t always guarantee: that the other party is identifiable and reachable. A SaaS company knows a customer’s name, billing address, and email from account creation, so serving notice of a dispute or naming a respondent in an arbitration demand is straightforward. A user who signed up with nothing but a connected wallet address may have provided none of that. The governing law and forum-selection language still belongs in a Web3 ToS, and the arbitration clause and class-action waiver still do real work, but the notice provisions need to account for a user who can only be reached at a wallet address or an email that may not be current, and the clause should be explicit about what counts as sufficient notice under those conditions rather than assuming a mailing address will always be on file.

Termination Doesn’t Reach the Chain

A standard T&C treats termination as complete: end the account, and the customer’s access to the product ends with it. A Web3 platform can revoke a user’s access to its own interface, ban a wallet address from its front-end, or stop indexing a user’s activity, but it has no mechanism to reach into a smart contract and undo what that wallet already owns or already did on-chain. An NFT minted before a ban stays in the wallet. A liquidity position in a DeFi protocol stays open unless the user closes it, regardless of what the platform’s terms say about account status. Spelling out that distinction, that termination affects access to the platform’s interface and services, not assets or positions that already exist on-chain, prevents a user from reading “we may terminate your account” as a promise the platform can’t keep.

Token Status: The Clause With Nothing to Copy From

This is the row in the table above with no standard-T&C equivalent to adapt: if the platform has a native token, the terms need a plain statement that it isn’t being offered as a security or investment product, and that nothing in the platform’s marketing should be read as a promise of future value or as financial advice. Whether a token is actually a security under securities law is a legal determination a Terms of Service disclosure doesn’t settle on its own, in the US, courts have generally applied the Howey test, asking whether there’s an investment of money in a common enterprise with an expectation of profit from others’ efforts, but the clause still does real work: it sets the platform’s public position and reduces the odds that routine marketing copy gets read later as an investment pitch. Platforms serving users across multiple countries commonly pair this with a prohibited-jurisdictions list and a sanctions clause confirming the platform won’t knowingly serve wallets or users on government sanctions lists, another disclosure a generic ecommerce template has no reason to include.

Deciding What to Rewrite

Not every platform needs every clause rewritten at full strength. A closed, invite-only tool serving one jurisdiction doesn’t need the same jurisdiction language as a public DeFi protocol, and a platform with no native token can skip the token-status section entirely.

Run through those five questions against what the platform actually does, and the standard T&C’s other sections, account creation, user content, indemnification, most of termination, generally carry over with only light editing. It’s the rows in the comparison table above where a straight copy-paste creates a document that doesn’t match reality.

Building the Document

Rewriting each of these clauses by hand, on top of an existing T&C template, is workable for a single platform but easy to get wrong on the details that matter, like which liability carve-outs apply to which contract functions, or whether the jurisdiction list needs updating for a new market. Our Web3 Terms of Service generator builds the document from the ground up around project type, chains supported, smart contract usage, and token status, rather than starting from a standard T&C and patching in the differences described above. For a deeper walkthrough of how each Web3-specific clause should read once you know it’s needed, see Terms of Service for a Web3 or NFT Platform.

Two adjacent documents are worth checking once the core ToS is drafted. If the platform also charges for off-chain subscription access, premium dashboard features, or analytics on top of its on-chain functionality, Refund Policy for Digital Products and Subscriptions covers that billing relationship separately from the on-chain finality language above, the two shouldn’t be merged into one clause. And if users upload their own NFT artwork, project descriptions, or other content to the platform, How to Write an Acceptable Use Policy for a SaaS Platform covers the conduct and content rules that apply regardless of where the underlying transaction settles.