Passive protection
See our anti-piracy placeholders for passive protection.
Active protection
You can implement a rudimentary DRM system for software-based products using BuiltByBit’s API. This approach takes advantage of BuiltByBit’s own knowledge of user licenses so that manual license key generation isn’t required. The purchaser downloads your product and will be able to start using it straight away. This approach uses BuiltByBit features which are available to all creators (ie. does not require our Ultimate upgrade).
To do so, follow these steps:
- Head over to the API tokens page of our creator dashboard.
- Create a token with the ‘resources.buyer.latest’ scope enabled (under Resources/Buyer).
- This should be the only scope enabled. Other scopes may be sensitive and should not be distributed within a resource to your buyers as a result. See the ‘V2 Shareability’ table column of your token for more information.
- Access the token by viewing the ‘Details’ page for the token and clicking ‘Show’.
- Utilise our below examples to implement code within your resource.
Example implementations
Java class (eg. Minecraft plugin)
Manual steps
Important notes
- You must still disclose your resource utilises a DRM system in your resource’s dependencies tab (and the relevant filtering option).
- There is a clear distinction between a purchaser’s download license and their usage rights. It may be that a purchaser’s download license has expired or been deactivated, but that they can still utilise the product because their usage rights remain intact. The endpoint used here
- The previously mentioned string constant utilises our anti-piracy placeholders meaning:
- if you utilise string obfuscation, you must exempt this string constant
- the string constant must be located a supported file type (eg. Java class, UTF-8 file)
- We advise taking advantage of the JWT signing feature our API provides. This allows you to validate the legitimacy of a previously cached response if our API cannot be reached.
- This license check occurs based on whether the license
Dynamic loading
A more advanced implementation may wish to introduce dynamic loading of resource content. That is, instead of the user-facing download you submit to BuiltByBit containing your actual resource, it simply contains a ‘loader’ which validates the user has an active license before downloading the actual resource content.