To trade accounts practically, buyer and seller have to either - directly send each other `XDR`-ed and `base64`-ed partly signed transactions, then unpack it, sign in and commit. Quite a hassle to be honest, especially if more than 2 signers in total. - or user Stellar signature aggregator service (i.e. [Constellation](https://github.com/johansten/constellation)) **** I would not recommend first option. Even if you go with account trading strategy, presigning 12 transactions add no value because issuer can easily default on bond by removing "keyA" from his account or just using another account. It even adds unnecessary friction, for example is it impossible to prepay bond in a meaningful way. It servers only as *terms of contract*, but for that matter a more easy and flexible way is to add statement such contract terms like "I will pay 1,000$ monthly until X" as a data field. You are right that finding owners of bond-assets and distributing proportional payments to them. It is a big hurdle in best case, and straight-forward impossible in various corner cases (rounding problems due low amounts, assets being in escrow account, etc.). **There's a third way** that combines the best of both approaches. In a nutshell, you create bondAccount that issue bondAssets that are sold. But those bondAssets are unique, numbered and repaid in sequence instead of repaid proportionally. - For issuer it is super easy - just pay money to bond account whenever you can and do your best to fit in previously agreed schedule. - For buyers it has all the features - you always know when and how many you are supposed to receive, trade bondAssets as easy as any asset on Stellar, and there's no risk to put those bondAssets into other smart contracts. More details are in a [whitepaper](https://drive.google.com/file/d/0ByzKCCWTHkioZzRhTThXSi0zcWM/view) by startup [FIC Network](https://www.ficnetwork.com) on page 37 (disclaimer: I am developer there).