0

The imagined application allows users to participate in an auction and make bids in cryptocurrencies. There are several behavioral rules that control the execution of the auction and determine the winner. The bids are accepted only when the bidder has disposal of the required amount in one of the supported currencies. When the bid is done, the amount is reserved (stored in an intermediate account) until the physical transaction (exchange of asset) is done (for the winner) or the amount is being released and sent back (non winner). Since the time frame can be long it may be necessary to convert the currency used in the transaction into some non volatile asset (stable coin). The application should support multiple cryptocurrencies so a merchant would be involved. Every step of the process should be transparent and immutable, so it is logical to develop a smart contract (or smart contracts) for the purpose and execute the process using a blockchain.

Is it possible to use an EOS smart contract for the execution of the whole process?

Any help, hint, guidance, idea and comment is appreciated. Thank you :)

1

Cool idea. I guess the bidding & auction system is possible, but with some limitations.

Data Storage & Computation

This are just normal transactions storing information who has bid when. You can use the multi_index to store that.

Timing

It may not be 100% fair because of the synchronization of bidding timings, regarding when a transaction/bid reaches a block producer. But this is a problem you have on ebay and conventional markets too.

Token System

To stake, hold & verify the amount of tokens you can use the system contracts and several examples.

What could be a problem, is that you want to include several other tokens/cryptocurrencies. The question is how would you verify that someone has payed/staked? If you are using EOS.IO based tokens only you can verify it on chain. If you have other truth bases like e.g. bitcoin network, you have to implement an acceptance algorithm that will rely on both parties to provide paying information and honestly notify when the payment is done.

The whole topic is also related to oracles that provide external information on the chain to verify and the trust based system of transfers. People/entities may have to verify them selves to provide legal entity.

Assets

The whole process may also be hard to maintain, if you are trading assets that won't be stored on chain. If you can transfer ownership within the chain it will be easier (maybe checkout cryptokitties), but if you are relying on real world "trust" - like I will shipping the product when you payed. It may be hard.

Conclusion

I think a market system is a cool thing to implement, but you have to evaluate what kind of things you want to trade and how you provide trust in payment and shipping.

| improve this answer | |
  • 1
    Thank you @TeeAttack42 for the detailed answer. I am going to wait some time before I mark it. So, if I understood correctly, EOS.IO smart contract is capable of running the whole process, even to communicate with a merchant in case of other currencies to make sure the payment is done. The actual assets are off-chain and require real world trust (a signed contract), however digital signatures may be used to trigger the release of the money. Your answer is inspiring, thanks again. – Daniel Leiszen May 13 at 10:34
  • 1
    I am glad I could help. Implementing such a market place is also related to providing a nice frontend: Check out this question 'Which NodeJs UI Framework is most suitable for EOSJS' I have written there about some frameworks I like to use. Good luck and tell us when your project is ready to test ;) – TeeAttack42 May 15 at 8:54
  • Thanks, I am experimenting with Flutter at the moment. That is a very promising candidate for future all in one UI solutions. – Daniel Leiszen May 16 at 19:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.