EARNIFY
Back to Home
Legal
Terms of ServicePrivacy PolicyAcceptable UseSDK AgreementTransparency Report

SDK Developer Agreement

Last updated: April 9, 2026

1. Overview

This SDK Developer Agreement (“Agreement”) governs the use of the Earnify SDK by third-party developers (“Developers”) who integrate bandwidth sharing functionality into their applications. By obtaining an SDK key or integrating the Earnify SDK, you agree to be bound by this Agreement.

2. SDK Key and Authentication

  • A valid SDK key (prefixed with sk_) is required to operate in Earn mode.
  • SDK keys are tied to your developer account and must not be shared, published, or embedded in publicly accessible source code.
  • Contribute mode does not require an SDK key, and Anonymous mode withholds one even if it was supplied. Both remain subject to this Agreement.

3. Consent Requirements

This is the most critical section of this Agreement. Failure to comply with consent requirements will result in immediate revocation of your SDK key.

3.1 Informed Consent

Before calling earnify_sdk_set_consent(1) or EarnifySDK.setConsent(true), your application must:

  • Display a clear, prominent disclosure to the user explaining that the application shares unused internet bandwidth.
  • Explain what bandwidth sharing means in plain language (e.g., “This app routes third-party internet traffic through your connection when idle”).
  • Disclose the compensation model (if applicable) or that the sharing is voluntary.
  • Provide the user with a clear opt-in mechanism (e.g., a toggle, checkbox, or confirmation dialog).
  • Not pre-check, pre-select, or default the consent option to “on”.

3.2 Ongoing Consent

  • Users must be able to revoke consent at any time through your application’s UI.
  • When a user revokes consent, your application must call earnify_sdk_set_consent(0). The SDK will automatically stop bandwidth sharing.
  • The consent state must persist across app restarts. Do not re-activate sharing after an app update without re-obtaining consent.

3.3 Technical Enforcement

The Earnify SDK enforces consent at the native binary level. The start() function will return error code -6 (ERR_NO_CONSENT) if consent has not been granted. This is a safety net, not a substitute for proper UI-level consent flows in your application.

4. Integration Requirements

  • Your application’s privacy policy must disclose the use of Earnify and describe the bandwidth sharing functionality.
  • If distributed through an app store, your store listing must mention bandwidth sharing in the app description.
  • You must not disguise, hide, or obfuscate the Earnify SDK within your application in a way that prevents security researchers or users from identifying its presence.
  • You must use the SDK as provided and not modify, patch, or wrap it to alter its consent behavior.

5. SDK Modes

ModeValueDescription
Earn0Requires a valid SDK key. Bandwidth is tracked against your developer account and compensated.
Contribute1Voluntary bandwidth donation. No SDK key is required — but one passed to earnify_sdk_init is still attached.
Anonymous2Runs as Contribute with no SDK key attached, even if one was supplied. The client is identified only by a random per-process ID — no account association.

Earn and Contribute are the two operating modes — Anonymous is Contribute with the SDK key withheld, not a separate mode. All three values require user consent via the consent API before bandwidth sharing can begin.

6. Bandwidth Caps

The SDK supports configurable daily and monthly bandwidth caps via the EarnifySdkConfig struct. Developers are encouraged to expose these settings to users, allowing them to control how much bandwidth is shared.

7. Prohibited Uses

Developers must not:

  • Auto-grant consent without user interaction.
  • Bury the consent disclosure in terms of service that users are unlikely to read.
  • Condition core app functionality on bandwidth sharing consent (no “pay-or-share” walls without clear disclosure).
  • Install the SDK on devices without the device owner’s knowledge.
  • Use the SDK in malware, adware, or any application distributed through deceptive means.

8. Compliance Auditing

Earnify reserves the right to audit applications integrating the SDK to verify compliance with this Agreement. This may include:

  • Reviewing the consent flow in your application.
  • Inspecting app store listings for proper disclosure.
  • Decompiling or analyzing the application to verify SDK integration.

Non-compliance discovered during an audit will result in SDK key revocation and potential termination of the developer account.

9. Termination

Earnify may revoke your SDK key and terminate this Agreement at any time if you violate its terms. Upon termination, you must remove the Earnify SDK from all distributed applications within 30 days and push an update to your users.

10. Contact

For questions about SDK integration or this Agreement, contact us at [email protected].