That should be possible, but invites a lot of complexity that we would much rather handle through a non-automated solution, such as direct spends signed by a human we can talk to. GAs have tremendous utility but also bring along the potential for someone to, say, spawn a ton of wallets and spam what would essentially be a GA faucet to nab “starter funds” from us with zero verification, and this could easily be automated.
Currently we like the idea of:
- Someone having to take the time to send us an email.
- One of us having to take the time to have a short conversation with the person and go through the process of signing a spend to them.
- Backstopping this process by the inherent human bandwidth limitation represented by 1 and 2 above.
- This problem should be temporary – friends who sell something on Aegora should be sending their own friends 0.1AE or people should be buying their own AE on an exchange, as ultimately the distribution of AE must expand across ordinary people who want to buy and sell things rather than be dependent on just Tsuriai being able to fund the entire world in 0.1AE increments.
When a buyer clicks “BUY” on an item on the site a contract call is created that will commit the amount of the sale into the contract. Note, this money does not yet go to the seller, but rather it is held by the contract until final two-way acceptance of the sale.
At this point the sale item is no longer visible on the sale browser and is instead found in the “in progress sales” or “in progress buys” part of the seller and buyer’s user navigation, and the sale item page itself becomes a message log between the two. The buyer can (and in most cases should) place a “block” on finalizing the transaction which prevents the seller from claiming the funds until the block is removed.
During this period the buyer can message the seller, and the seller the buyer – and the seller can update the price up or down. If the price is adjusted down the buyer is refunded the difference at that moment, and if the price is adjusted up the sale cannot be completed until the buyer commits the difference to the contract (there is a button for this).
Most sellers will require a price adjustment no matter what, because they will need to negotiate shipping overhead. Occasionally the buyer may want to renegotiate the price, however, simply due to the volatility inherent in crypto prices.
Once both parties have agreed to the final price, the full price has been paid into the contract by the buyer and the buyer has removed any block on the sale, the seller can then click “accept” and receive the funds – at which point the sale item page (which is still for now a log of all messages between buyer and seller as well as a log of all on-chain transactions adjusting prices, blocks, etc. to date) changes to add an item-reception section where the buyer can review the seller and register whether or not he received he desired item.
Either party can reject involvement in the sale at any point prior to acceptance of the sale, at which point the buyer is fully refunded and the contract goes back into “NEGO” status and is once again made visible on the sale browsing screens of the site.
All of the price adjustment, sale blocks, acceptance, rejection, etc. are governed by contract calls on-chain and the statuses of those calls are verified by the site backend (listed as “pending changes” until they are confirmed on-chain).