Ruination Bots

Data Processing Agreement

Last updated 2026-10-07
This agreement (Auftragsverarbeitungsvertrag) is concluded pursuant to Art. 28(3) GDPR between you, the account holder ("Controller"), and Youri Hoffmann, c/o Block Services, Stuttgarter Str. 106, 70736 Fellbach, Germany ("Processor"). It forms an integral part of the Terms of Service and takes effect when your account is created. It is concluded in electronic form, which Art. 28(9) GDPR allows; no separate signature is required, and we will countersign a copy on request to privacy@ruination-bots.com.

1. Why you need this

When your Bot records a moderation action, tracks levels, stores a ticket or counts an invite, it processes personal data about members of your Discord server. You decide that it should happen and why, which makes you the controller. We only store and process it on your instruction, which makes us your processor.

Art. 28(3) GDPR requires that relationship to be governed by a contract. This is that contract. Without it, processing member data through the Service would not be lawful.

2. Subject matter, duration, nature and purpose

Subject matter and purpose. The provision of Ruination Bots: hosting and operating Discord bots on the Controller's behalf and storing the data those bots generate, as configured by the Controller.

Nature of the processing. Collection, recording, organisation, structuring, storage, retrieval, use, transmission to Discord, restriction and erasure, carried out by automated means.

Duration. For as long as the Controller holds an account. For a Bot, the processing ends when that Bot is deleted, and entirely when the account is deleted or the contract for the Service otherwise ends (section 10).

3. Categories of data subjects and personal data

Data subjectsCategories of personal data
Members of Discord servers in which the Controller operates a BotDiscord user IDs and usernames as they were at the time of a record (in giveaway entries also display name and avatar); moderation records (bans, kicks, timeouts, warnings, the stated reason and the acting moderator); experience points, level and the time of the last message that counted for it; invite attribution (which invite, when joined and left, whether flagged as fake) and invite counters; anti-spam escalation counters; participation in tickets, suggestions and giveaways (who opened or was added to a ticket and when they last wrote, suggestion votes, giveaway entries and winners), but not what was written; timed roles; ownership of temporary voice channels; the last member to count in a counting channel.
Moderators the Controller appoints in the dashboardAccount identifier, Discord username and avatar, granted permissions, invitations sent to them and their answer, their actions in the audit log (with a keyed hash of the IP address and the browser user agent), and text they write through the Bot: reasons for moderation actions, timed roles and channel locks, sticky messages, giveaway prizes and descriptions.

Special categories of data (Art. 9 GDPR) are not intended to be processed. The Service is not designed for them. If the Controller configures a Bot in a way that causes such data to be submitted - for example a ticket form asking about health - the Controller is responsible for having a legal basis under Art. 9(2) GDPR and for its own assessment. Our obligations under this agreement apply to such data all the same.

4. Processing on documented instructions

We process personal data only on the Controller's documented instructions, including with regard to transfers to a third country or an international organisation, unless required to do so by Union or Member State law to which we are subject. In that case we will inform the Controller of that legal requirement before processing, unless that law prohibits such information on important grounds of public interest.

The Controller's instructions are given by this agreement, by the Terms of Service, and above all by the configuration made in the dashboard: enabling a module, setting a retention option or deleting a record are instructions in this sense. Further individual instructions may be given in text form to privacy@ruination-bots.com.

The Controller is responsible for the lawfulness of the processing it instructs, in particular for having a legal basis and for informing the members of its server (Arts. 6, 13 and 14 GDPR). It has the rights this agreement gives it: to give instructions, to be informed, to object to sub-processors and to audit.

We will inform the Controller immediately if, in our opinion, an instruction infringes the GDPR or other Union or Member State data protection provisions, and may suspend execution of that instruction until it is confirmed or changed. We are not obliged to carry out an instruction that is obviously unlawful.

5. Confidentiality

Everyone we authorise to process personal data under this agreement has committed themselves to confidentiality or is under an appropriate statutory obligation of confidentiality, and that obligation survives the end of their engagement. Access is granted only to those who need it to provide or maintain the Service, and only to the extent needed.

6. Technical and organisational measures (Art. 32)

We implement measures appropriate to the risk, taking into account the state of the art, the cost of implementation and the nature, scope, context and purposes of the processing. These are set out in Annex II and may be updated as technology develops, provided the level of protection is not reduced.

7. Sub-processors

With this agreement the Controller gives its general written authorisation (Art. 28(2) GDPR) for the engagement of sub-processors. Those currently engaged are listed at Sub-processors and reproduced in Annex III.

We will inform the Controller of any intended addition or replacement at least 30 days in advance, by email to the address on the account. The Controller may object within that period, giving a data protection reason. If we cannot resolve the objection, the Controller may terminate the contract for the Service (the Terms of Service together with this agreement) without notice and at no cost, with effect no later than the date the change would take effect; anything paid for the time after the termination is refunded.

We impose on every sub-processor, by contract, the same data protection obligations as set out in this agreement, in particular sufficient guarantees that appropriate technical and organisational measures are implemented, and remain fully liable to the Controller for the performance of their obligations.

8. Assistance with data subject rights

Taking into account the nature of the processing, we assist the Controller by appropriate technical and organisational measures in fulfilling its obligation to respond to requests under Chapter III GDPR.

In practice the dashboard is that assistance, and these are the specific surfaces:

  • Access (Art. 15): the member lookup shows a member's moderation history and anti-spam escalation level, and each feature shows its own records (the level leaderboard, invite statistics, tickets, giveaways). Everything else stored about a member we provide on request to the data protection contact in Annex I, as a machine-readable file and without undue delay, in time for the Controller to answer within the period of Art. 12(3) GDPR.
  • Correction (Art. 16): a member's stored level and experience can be set directly; a moderation record carrying a wrong reason can be removed.
  • Erasure (Art. 17): one control erases everything a bot has stored about a Discord member, across every feature at once, and deletes the suggestion messages the bot posted in that member's name. It is available to the bot owner only and cannot be handed to moderators.

Two limits on the erasure, stated because they are real rather than because they are convenient. Anything still in progress is refused rather than deleted, and named in the response so it can be resolved: an open ticket, a timed role that has not come off, a temporary voice channel still in use. Deleting those records would break the feature rather than expire it. And records belonging to other members are kept, with the reference to the erased member removed instead, because those records are a third party's data and answering one erasure request by destroying somebody else's is not erasure.

What a Bot has already posted on the Controller's Discord server (ticket messages and transcripts, the answers to a ticket form, announcements) is stored by Discord, not by us, and stays there until the Controller deletes it in Discord.

Where a request reaches us instead of the Controller, we will not answer it ourselves - we will forward it without undue delay and support the Controller in answering.

9. Breach notification and further assistance

We notify the Controller without undue delay after becoming aware of a personal data breach affecting data processed under this agreement, with the information available to us, so that the Controller can meet its own obligations under Arts. 33 and 34 GDPR.

We also assist the Controller, taking into account the nature of processing and the information available to us, in complying with Arts. 32 to 36 GDPR, including data protection impact assessments and prior consultation.

10. Deletion and return of data

At the Controller's choice, we delete or return all personal data after the end of the provision of services, and delete existing copies, unless Union or Member State law requires storage.

The Controller makes that choice itself. Deleting a Bot or the account is the choice to delete, carried out automatically and irreversibly (immediately, with backups overwritten within 30 days). Before deleting, the Controller can ask for a copy of the data at privacy@ruination-bots.com; we provide it as a machine-readable file. If the contract ends in any other way, the periods in the Terms of Service for switching providers apply: the data stays available for retrieval and is deleted afterwards.

Our backups are not used to restore deleted data; they are overwritten on their own cycle within 30 days. That is a technical period, not storage for any purpose of ours. Apart from them, we keep no copy.

11. Information and audits

We make available to the Controller all information necessary to demonstrate compliance with Art. 28 GDPR and allow for and contribute to audits, including inspections, conducted by the Controller or an auditor it mandates.

Audits are to be announced with reasonable notice, are limited to normal business hours, must not disproportionately disrupt operations, and are subject to confidentiality. In the first instance we may answer an audit request with documentation of our measures, or with current certifications and audit reports from our sub-processors. Where that is not sufficient, the Controller's right to inspections remains. Inspections at our providers' data centres are carried out through the audit rights we hold under our agreements with them and the reports they publish, since we do not operate those centres ourselves.

12. Third country transfers

Where processing takes place outside the EU or EEA, it is covered by an adequacy decision under Art. 45 GDPR or by appropriate safeguards under Art. 46 GDPR, as a rule the European Commission's Standard Contractual Clauses, supplemented by technical measures. Annex III states the transfer basis for each sub-processor. Any transfer beyond those described there requires the Controller's instruction.

13. Annex I - Details of the processing

ItemDetail
ControllerThe account holder, identified by the account and the email address held on it.
ProcessorYouri Hoffmann
Contact for data protectionprivacy@ruination-bots.com
Subject matterHosting and operation of Discord bots and storage of the resulting data.
DurationFor the term of the account; for each Bot until it is deleted.
FrequencyContinuous, for as long as a Bot is running.
Data subjectsDiscord server members; appointed moderators.
Data categoriesAs set out in section 3.
Special categoriesNone.
TransfersAs set out in Annex III.

14. Annex II - Technical and organisational measures

The following measures are implemented in accordance with Art. 32 GDPR. They are stated honestly rather than aspirationally: what is listed is what is in place.

  • Pseudonymisation and encryption. TLS for all data in transit. Encryption at rest by our database provider. Bot tokens additionally encrypted at the application layer (AES-256-GCM) with a separate key, never returned to a client and never logged. IP addresses in audit records stored only as keyed hashes. Our own backups encrypted as they are made, with a key that is not on the server.
  • Confidentiality - access control. Authentication via Discord OAuth with no passwords held by us. Row-level security in the database restricting each account to its own rows. Administrative credentials held server-side only. A granular permission model for moderators, with the delegation of access itself reserved to the owner.
  • Integrity. A log of every change made through the dashboard, including attempts refused for lack of permission, that the Controller can read but not edit, retained 90 days. Server-side validation of input before it is stored. Rate limiting against abuse and enumeration.
  • Availability and resilience. A managed database at our database provider, and in addition encrypted daily backups that we make ourselves and keep apart from the database, on our server at our hosting provider, for less than 30 days. Health monitoring of running bots with automatic restarts. Job queues that retry failed jobs with increasing delays.
  • Regular review. Dependency updates, review of access rights, and verification that documented retention periods match what the software actually does.
  • Separation. Data is separated per account and per bot at the row level, and access is always scoped by the acting account.
  • Instruction control. Processing is driven by the Controller's configuration; no member data is used for our own purposes, and none is used to train models or for analytics beyond the Controller's own dashboard.

15. Annex III - Approved sub-processors

Sub-processorPurposeLocationTransfer safeguard
Supabase
Supabase Pte. Ltd, 65 Chulia Street #38-02/03, OCBC Centre, Singapore 049513
Database, authentication and file storage for account data, bot configuration and avatars; the spam-protection counters of the contact and launch-notice forms (a keyed hash of the network address, deleted after at most 24 hours).eu-north-1 (Stockholm, Sweden) - inside the EU/EEAEU Standard Contractual Clauses where data is processed outside the EEA.
manitu
manitu GmbH, Welvertstraße 2, 66606 St. Wendel, Germany (AG Saarbrücken HRB 19076)
Server hosting (virtual server) for the website, dashboard, API and bot workers, including the in-memory job queue and the server logs, and storage of the nightly backups of the database and of stored files. The backups are encrypted with a key that is not on the server and are kept for less than 30 days.St. Wendel, Germany, in its own data centre - inside the EU/EEANone. The data processing agreement restricts processing to Germany and the EU/EEA.
Cloudflare
Cloudflare, Inc., 101 Townsend Street, San Francisco, CA 94107, USA (German subsidiary: Cloudflare Germany GmbH, Rosenheimer Str. 143C, 81671 München, AG München HRB 242623)
Content delivery, TLS termination, DDoS protection and bot filtering in front of the website, the dashboard and the API. Sees the IP address, the request metadata and the user agent of every request, including on these public pages.Global anycast network - requests are normally served from the nearest edge location, which for European visitors is inside the EU/EEA, but EU-only processing is not contractually guaranteed on this planEU Standard Contractual Clauses, the UK International Data Transfer Addendum (B1.0) and SCCs adapted for the Swiss FADP; Cloudflare, Inc. additionally relies on the EU-U.S. Data Privacy Framework.
Brevo
Brevo, a trading name of SENDINBLUE SAS, 9-17 rue Salneuve, 75017 Paris, France (RCS Paris 498 019 298)
Delivery of every email this platform sends: the account welcome message, contact form enquiries, moderator invitations, bot alerts, the weekly recaps, and the launch notification list. Receives the recipient address and the message.Data centres in France - inside the EU/EEA. The provider states, however, that data may also reach countries without an adequacy decision, in particular the United States and India, through its own sub-processors.Sent from France. Onward transfers to the provider's affiliates and sub-processors in India are covered by EU Standard Contractual Clauses with supplementary measures, and those to the United States by the EU-U.S. Data Privacy Framework together with Standard Contractual Clauses, as set out in the provider's Data Processing Agreement.
Zoho Mail
Zoho Corporation B.V., Beneluxlaan 4B, 3527 HT Utrecht, Netherlands
Receiving and storing email sent to our addresses (support@, privacy@ and the other addresses at our domain), including contact form enquiries and data subject requests, and the replies we send from that mailbox.Zoho's EU data centres (Amsterdam, Netherlands, and Dublin, Ireland) - inside the EU/EEA. Zoho group companies outside the EEA, in particular in India and the United States, may access data for support and operations.Onward access by Zoho group companies outside the EEA is covered by intra-group agreements based on the EU Standard Contractual Clauses, as set out in Zoho's Privacy Policy and Data Processing Addendum.