The Planet Express Delivery Protocol is designed to help facilitate the delivery of physical assets from point A to point B in a trusted and cost effective manner.
The idea of being able to affordably move goods in a trusted manner is something that is integral to modern society. It was so important at the founding of the United States that the founders wrote the US Postal System into the constitution, creating a national system to affordably deliver assets from one point to another that had the trust of the government behind it. There are of course private companies that people also may use to ship things, however with these you are at their mercy when it comes to delivery times and cost.
The Planet Express Delivery Protocol is built to be a feature that can be added into existing supply chain management systems or can be used to build out new platforms to facilitate trusted and cost effective delivery of goods.
How it Works
First off, many of the operations being described in this description happen in either the client program or the Solana program and are not manually handled by the users. I am just noting them here to try and give a clearer picture of the entire process.
Okay, let’s say that Alice has a package that she needs to get to Bob. Getting that package to Bob has a certain value to Alice. Let’s say that the package didn’t make it to Bob, what is an adequate compensation? Well, Alice get’s to pick! This allows the user to make the determination of how important it is that their package be delivered. This value is important because the program derives two numbers from it. One will be the fee that Alice will have to pay and the other is the insurance that the deliverer will have to put up when taking possession of the package.
The fee is handled by Alice asking the system program to create a new Planet Express Delivery token account which she will move the amount of tokens representing the fee from her personal PXD token account and transfer it to the temporary account that she just created which will be transferred to the program to hold.
Aside from the value of the delivery, Alice will also have to have the account address the belongs to Bob. This is because Alice needs to create and send to Bob a token that he will use to confirm the package has been delivered. She will create a token, create an account for that token, mint one token into the account then disable further minting, then finally she will transfer the ownership of that account to Bob.
Once these things are done Alice will lastly create another temporary account, this one will be used to manage the state of the delivery, and sends the message to the program to initiate the delivery. The message contains the value of the delivery as well as the address of the account with the confirmation token.
Now let’s say that Alice has found Charlie who has volunteered to handle the delivery for her. Charlie goes to accept the package and to do so he will create a temporary PXD token account and transfer enough of his own PXD into it to cover the insurance amount. He will then transfer ownership of the new temporary insurance account to the program.
Once Charlie has delivered the package to Bob, Bob will transfer the ownership of his confirmation token account to the program. So long as the token matches what Alice told the program earlier the token would be, the delivery is verified and complete!
and lifetime on accounts makes it absolutely ideal for use cases such as this where the individual transactions are of relatively low value and the lifetime of accounts doesn’t need to be infinite.
Potential Use Cases
Local retailers would have the ability to affordably implement their own delivery system as opposed to having to rely on companies like Uber Eats and Door Dash.
Entrepreneurs could more affordably start last mile delivery companies helping reduce the cost of the most expensive part of a delivery.
Public Repo
This link can't be embedded.
(it’s a link)
Additional Development Needed
There are a number of additional steps that would be needed to begin to take something like this to market. There are several shortcomings with the current program that need to be corrected as well as there needs to be a client interface built to handle some of the necessary interactions with other Solana Programs as well as facilitate transactions with the Planet Express Delivery Protocol program.
Build client interface to interact with program
Update program to handle event of a package that is unable to be delivered to the confirmation account owner
Update program to handle the event of a deliverer losing or stealing a package and the initializer getting their fee back plus the insurance payout
Add program to distribute the tokens used by the Planet Express Delivery Protocol
Want to print your doc? This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (