Payments have a thing for being tricky —inside and outside the crypto world. Most of the time, the process is quite simple: someone offers you something (physical or digital) that you need in exchange for a price. You usually pay that price with a certain amount of money, receive your goods or services, and that’s it. But a lot of things could go wrong with that, especially if the entire process is digital.
Scams are, sadly, very common in all places. Some malicious actors could offer you fake or damaged products; or simply send your package to the wrong recipient, for example. If you have already paid for it, then what happens with your money? Is it lost forever? It shouldn’t be like that, right? That’s what conditional payments are for.
By binding a digital payment to a specific condition, anyone could recover their money in the case that condition (like receiving a package or losing a bet) isn’t met during a reasonable period. Obyte Wallet offers this function in a user-friendly way, without any coding.
Users who want to make a bound payment only need to have an Obyte wallet and, if you need some data from the physical world, also the address of a native Oracle. Oracles are services that provide external (off-chain) information to the distributed ledger. In other words, they post real-world data on the DAG, which allows any individual or smart contract to consult that data and act in consequence.
For example, the oracle represented by the address TKT4UESIKTTRALRRLWS4SENSTJX6ODCW posts data from football-data.org and mysportsfeeds.com. So, it works as a Sports Betting Oracle. It’s available for anyone to consult in the Obyte DAG, at any time.
Let’s say, then, that Alice made a bet with Bob: he should pay her 20 GBYTEs if the Sport Lisboa e Benfica (SLI) football team wins the next match against the FC Internazionale Milano (INT) in the UEFA Champions League (CL). Bob can bind the payment to that condition easily on the Obyte wallet. The first thing to do is go to the “Chat” section and “Add a new device” —Alice’s device, in this case. As for Alice, she must accept the pairing invitation on her own device (wallet).
Sending a conditional payment
Once paired, her device should appear in your “Contacts” list. Open a chat with her, and ask her for her Obyte address. You’ll have two options here: click on her address and select “Offer a smart contract”, or select “pay to this address”, set the amount, and click “Bind the Payment to a Condition”. In the first case, there’s an option for payments from both parties. In the second one, only one party is paying if the condition is fulfilled.
The oracles enter here. Since Alice and Bob are betting on a football game, the space destined for the oracle must have the address we mentioned above —the Sports Betting Oracle. The data feed will be the game and date (i.e. CL_INT_SLI_2023-04-19) and the expected value will be the result of that game (i.e. INT, SLI, or DRAW).
The chatbot [Sports Oracle] is available on the Bot Store in the wallet, and anyone can consult the last games there. In our case, since the result wasn’t “SLI” but “DRAW”, Bob will recover his coins in a few hours.
Beyond the list of available oracles provided by the Obyte team and some community members, there’s also an easy-to-use option for you (or someone else) to become an oracle. Or, more exactly, for your Obyte address to become an oracle. This way, that address is the last arbitrator between parties. It could be a boss, for example. If they received a task from an employee on time, a bonus would be immediately released to the other wallet.
To create this type of oracle, just visit the section “Send” in your wallet, and select “Data into data feed (searchable)” with name and value. This value doesn’t need to be in numbers, but it could be any text as well (like Yes or No). A human oracle could be any kind of expert, arbitrator, or service. Therefore, you can enable other people to customize their own bound payments in almost limitless ways.
End of the Byte!