Oh, regarding the TOS issue: If you say the first 10BTC are the fee for regulatory measures, this could even be used in combination with TOS enforcement. So the user may get his 10BTC deposit back within 2 weeks at any time when cancelling his subscription. To have the service simple in this scenario though, the returning address should be given along with the first subscription as otherwise people would try to redirect the refund. Actually a refund mechanism wouldn't be that bad anyway.:
request: {
"secret":"12abb9eb-959a-4ada-bee2-b6d6539b9dc7",/some uuid
"upload":"some image data"/the actual api call
}
answer: {
"error":"unknown secret",
"message":"Please use the register method to pay with BTC or register for an API key at
www.server.com where you can pay with paypal"
}
request: {
"secret":"12abb9eb-959a-4ada-bee2-b6d6539b9dc7",
"register":"1u1e6DUsZ7rwX6UrkHqSz1Gs6oKnVCLkTPx"
}
answer: {
"fund-address":"1Gs6oKnVCLkTPxu1e6DUsZ7rwX6UrkHqSz"
"message":"please charge the fund address + 10BTC deposit"
}
// fund the address ...
request: {
"secret":"12abb9eb-959a-4ada-bee2-b6d6539b9dc7",
"upload":"some image data"
}
answer: {
"result":"2.5MB uploaded",
"api-balance":"1.0012"
}
answer: {
"error":"funds depleted",
"fund-address":"1Gs6oKnVCLkTPxu1e6DUsZ7rwX6UrkHqSz",
"message":"please fund or request a return of your deposit with a call to returnDeposit"
}
request: {
"secret":"12abb9eb-959a-4ada-bee2-b6d6539b9dc7",
"returnDeposit":""
}
answer: {
"result":"1.0012 sent to 1u1e6DUsZ7rwX6UrkHqSz1Gs6oKnVCLkTPx. The deposit of 10BTC will be sent there within 10 days. Review pending.",
"api-balance":"0"
}