I searched but didnt find any similar solution. I presume this could be done with ETH but is there a way to do it with BTC?
You can use
BIP112: CHECKSEQUENCEVERIFY scripts. (
BIP link)
Particularly, "
Escrow with Timeout" scripts to generate addresses that can work as you intended.
Since it's generally a multisig address, the users still have control over the the funds depending on the signature requirement (
no third-party required for the transaction) just a platform for UI, guides, "
listings", online non-custodial wallet, etc.
Plus there's an expiration date which will enable the original fund owner to claim/spend his funds whenever he like (
after the set date) if the deal didn't gone well.
For the part "
percentage of the fund going to the platform", you can just set a fee for every listing in your page.
I can't help you with the implementation.