After having written a proof-of-concept of a closed-source java SAAS app, I would like to raise a "relatively" small investment to refactor the code-base to allow the scope of the app to be increased. To minimise the amount of trust required and resources allocated to administrative tasks and "business plans", I would like to allow people to invest with a predetermined maximum return on investment that is preset in a smart-contract investor_payments, where e.g. 60% of the SAAS revenue is returned directly to the investors and 40% goes to me, until the investors are made whole. E.g.

  • For investments of the first $0 to $5.000,- the investors may receive their input back with a multiple of 10.
  • $5.000,- to $25.000,- have a maximum ROI factor of 5.
  • $25.000,- to $50.000,- have a maximum ROI factor of 2.

Transaction Description

The SAAS app is centralised and gets updated throughout the investment process. However, its users need to provide the app/.jar file with their proof of payment to the smart contract user_payments, to use it. The user_payments smart-contract automatically splits the user-payments into investor returns and SAAS-developer returns (through the investor_payments contract), according to the distribution key set in the investor_payments contract.


The investors still need to trust me/the developer of the SAAS app to not change the "wallet address" of the user_payments in future updates of the app. I think this is a fundamental limitation on the concept as one could always start "something else" which happens to be very similar whilst using a different wallet address at the cost of reputation.


I doubt I am the first person to try something like this, and I was wondering whether there are any example contracts that provide this functionality/I could use as a starting point. And more importantly, for SAAS fees in the range of $1 to $10 a month per user, would the Ethereum eco-system be suited for the proposed investment contract, for example by off-loading transaction handling into layer two solutions, or would it perhaps be wiser to build this smart-contract on another chain or in some hybrid form?

1 Answer 1


Smart Contract for Investment and Revenue Distribution: Your idea to automate investment returns and revenue distribution is feasible and aligns well with Ethereum's smart contract capabilities. You can create a smart contract (investor_payments) to manage investments, define return rates, and allocate SAAS revenue between investors and yourself. Another contract (user_payments) could handle user fees, splitting the funds according to the rules set in investor_payments.

Avoiding USD for Simplicity: Integrating USD directly into smart contracts adds complexity due to the need for accurate and secure price feeds, typically provided by oracles. For your initial setup, using ETH or a stablecoin like DAI for transactions simplifies the process. ETH brings the native cryptocurrency's ease of use, while DAI provides price stability, closely pegging to the USD without the direct use of oracles.


For investments and revenue distributions, consider using DAI to maintain consistency with the USD value while leveraging blockchain's benefits. DAI is widely used in the Ethereum ecosystem for stable transactions and would be suitable for handling SAAS fees. For transaction efficiency and cost-effectiveness, explore Ethereum's Layer 2 solutions or sidechains. They offer lower transaction fees and faster processing, ideal for your SAAS fee range ($1 to $10 a month). Layer 2 options like Optimism or Arbitrum, or sidechains like Polygon, could significantly enhance user experience by reducing costs and increasing transaction speed.

Example Contracts and Further Reading:

Look into OpenZeppelin's contracts, especially their finance templates such as PaymentSplitter, which might be adapted for distributing revenues. Explore vesting contracts used in ICOs or token sales for insights on managing investor returns over time. Investigate how Decentralized Autonomous Organizations (DAOs) manage investments and governance, which might offer sophisticated models for transparency and decision-making in your application.

Probably to give you better answer I would need to understand better business model of your SaaS app and how could it be decentralized. Providing .jar file as input to smart contract seem way too complex and expensive, I 'd suggest maybe using Merkle Tree for investors and make them send proof for merkle tree. Or maybe some zk-mechanmism.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.