Contributing
Consent receipts
The terms are recorded on the ledger, where we can't edit them.
A consent receipt says: this contributor allowed this buyer to use the data with this hash, for this purpose, until this moment.
If the receipt lived in our database, a buyer would have to take our word for it, and we could rewrite it. On the ledger, a buyer can check it without an account or permission from us, and neither side can quietly change what was agreed.
Two rules the contract enforces
- Consent always ends. The contract refuses a grant without a future expiry, so there are no perpetual grants.
- Only you can withdraw it. The buyer can't, and neither can we. Revoking ends the receipt and keeps the record of what was agreed.
Both rules are in the contract's code, which is the reason to put consent on a ledger in the first place.
Verifying one
Anyone can ask the contract whether a receipt still stands:
stellar contract invoke --network testnet --send=no \
--id CBBSNMX74QCDBYJ3MECQTVBAQQ52NYJWLI5B7JUEESHHSPAGAJAJTLQI \
--source <any-funded-key> \
-- is_valid --id 0The contract, its source and its tests are on the links page.
What it can't do
A receipt can't reach into a model that has already trained on your data. Revoking stops future use and makes the withdrawal publicly checkable, but a trained model keeps what it learned. That limit is why consent here always has an end date.