# Write data on the BSV chain with consent: every rule

Every do and don't the guide states on the pages behind this skill. The costly ones come first; the full list follows, grouped by page. Quote them; do not paraphrase them.

10 rules: 1 that can cost money, 5 that can cost trust, 4 standard.

## Start here

- **DON'T** _(Costs money)_ Write anything identifying a person without an explicit, specific consent for that write. "Agreed to the terms" is not consent to publish somebody's name forever.
  <https://www.bitcoinsv.design/guide/rule/d18ac5c2f8/>
- **DO** _(Costs trust)_ Say "permanent and public" in the consent step, in those words, before anything is written.
  <https://www.bitcoinsv.design/guide/rule/f3791442cf/>
- **DO** _(Costs trust)_ Show exactly what will be written. If it is a hash, say that the document stays on your server and only a fingerprint goes out.
  <https://www.bitcoinsv.design/guide/rule/5ec4966080/>
- **DON'T** _(Costs trust)_ Offer a delete button for on-chain data. You can stop displaying it. That is not the same thing and the difference is the whole point.
  <https://www.bitcoinsv.design/guide/rule/e608a8eef7/>
- **DO** _(Costs trust)_ Default to the hash. Publishing is the irreversible option and should be the deliberate one.
  <https://www.bitcoinsv.design/guide/rule/f21b5fcb40/>
- **DO** _(Costs trust)_ Make sure the data can still be verified without your overlay. The point of putting it on chain was independence from you.
  <https://www.bitcoinsv.design/guide/rule/7162ccb4f6/>

## Every rule, by page

### Storing data on chain

https://www.bitcoinsv.design/guide/patterns/storing-data-on-chain/

- **DO** _(Costs trust)_ Say "permanent and public" in the consent step, in those words, before anything is written.
  <https://www.bitcoinsv.design/guide/rule/f3791442cf/>
- **DO** _(Costs trust)_ Show exactly what will be written. If it is a hash, say that the document stays on your server and only a fingerprint goes out.
  <https://www.bitcoinsv.design/guide/rule/5ec4966080/>
- **DON'T** _(Costs money)_ Write anything identifying a person without an explicit, specific consent for that write. "Agreed to the terms" is not consent to publish somebody's name forever.
  <https://www.bitcoinsv.design/guide/rule/d18ac5c2f8/>
- **DON'T** _(Costs trust)_ Offer a delete button for on-chain data. You can stop displaying it. That is not the same thing and the difference is the whole point.
  <https://www.bitcoinsv.design/guide/rule/e608a8eef7/>
- **DO** _(Costs trust)_ Default to the hash. Publishing is the irreversible option and should be the deliberate one.
  <https://www.bitcoinsv.design/guide/rule/f21b5fcb40/>
- **DO** Treat the overlay as a dependency the user should know exists, the way you would treat any other service. See Interoperability.
  <https://www.bitcoinsv.design/guide/rule/3b81bf9bb5/>
- **DO** _(Costs trust)_ Make sure the data can still be verified without your overlay. The point of putting it on chain was independence from you.
  <https://www.bitcoinsv.design/guide/rule/7162ccb4f6/>
- **DO** Show progress honestly for anything large, and say what happens if it stops halfway. A partially written file is a real state, not a theoretical one.
  <https://www.bitcoinsv.design/guide/rule/335014706c/>
- **DON'T** Put a large file on chain because you can. Cost is not the constraint; permanence is, and so is the user's understanding of it.
  <https://www.bitcoinsv.design/guide/rule/11cb102c91/>
- **DO** Say "anchored in block 951,204" alongside the human date. The block is the fact; the date is the convenience.
  <https://www.bitcoinsv.design/guide/rule/fec32573be/>
