Scenario:
Client A has 30 NXT, Client B has 30 NXT.
How to pay 40 NXT to Client C?
How it is solved in btc/ltc:
==============================
"sendtoaddress" commands which accumulates balances and creates a total output and then pays.
How it is solved in stellar/btsx
===================================================
By taking deposits in a single account and identifying different clients with MEMO:
How to implement the same in NXT.??
Any help will be appreciated
short answer as I understand it: Option B- By taking deposits in a single account and identifying different clients with MEMO.
strong advice: do the accounting yourself. the bitcoin wallet accounts feature is a QUAGMIRE!
SO you have to decide yourself how many NXT are supposed to be going from A to C, and how many from B to C to add to a total of 40NXT.
You can also make one big pool and make note for yourself how many belong to A, B and C.
A bit longer:
the "sendtoaddress" feature of the bitcoin wallet does the MEMO for you, but it is glued togther so tightly with the real bitcoinaddresses that this fact is easily missed.
---------------
from https://en.bitcoin.it/wiki/Accounts_explained
The Default Account
The default account is named with the empty string ("" in JSON). Generated coins are always credited to the default account, and the sendtoaddress method always debits the default account.
- 'sendtoaddress' always succeeds if there are sufficient funds in the
server's wallet. For example, if your wallet account balances were 100 BTC in account
'foo' and 0 BTC in the default account, then the balances after sendtoaddress
1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN 10.00 would be 100 in account 'foo' and -10.00 in
the default account (and the overall server balance would go from 100 to 90 BTC). On
the other hand, using 'sendfrom' to send from the default account with a zero balance
will fail with message "Account has insufficient funds".
Account -> Account Transfers
Use the move method to transfer balances from one account to another. Moves are not broadcast to the network, and never incur transaction fees; they just adjust account balances in the wallet.
-----------------
the latter indicates that these are non blockchain related tabulators that are kept there, so under the hood it is just the same as if you would do it yourself, only when you do it yourself, you know what you are doiing.
the accounts in the 'wallet' 'account' slots in the DB can become even negative- something an accountant MAY do for his purposes, but a potentially troublesome tool to use- because in the end the accounts MUST balance.
so instead of letting bitcoinQT walletdb do that for you and potentially now know what is happening- do it yourself.
another caveat from the bitcoin wiki:
Account Weaknesses
Since the accounts feature was introduced, several services have used it to keep track of customer's bitcoin balances and have had the following problems:
Wallet backups are an issue; if you rely on a good backup of wallet.dat then a backup must be done every time an address is associated with an account and every time the 'move' command is used.
The accounts code does not scale up to thousands of accounts with tens of thousands of transactions, because by-account (and by-account-by-time) indices are not implemented. So many operations (like computing an account balance) require accessing every wallet transaction.
Most applications already have a customer database, implemented with MySQL or some other relational database technology. It is awkward at best to keep the bitcoin-maintained Berkely DB wallet database and the application database backed up and synchronized at all times.
In NXT every transaction incurs a minimum fee of 1 NXT i think ?.
So how to do fee-less transaction from user account to hot wallet account in NXT for Account-Based deposits?