rescue project as a service

There is no official website, no twitter, no discord, and no official roadmap. The only exists thing that is the RAAS contract code. Code is the law and the foundation of trust.

background:

We have noticed that more and more NFT project officials claim that their wallets have been compromised by hackers or anonymous project mole to obtain the ownership of contracts.

therefore the project founder declaring that the NFT project is bankrupt and will not build, the community members also questioned that the NFT project founder had rug pull.

For hackers, the ownership of an NFT contract has no more value, but for NFT project community, the ownership of an NFT contract is the cornerstone of the community's trust. Once the ownership of the contract is lost for a long time and cannot be taken back, the community will soon die in a murmur of doubt.

Hackers who cannot obtain income from the ownership usually do not kindly spend gas to return the contract owership to the project community. However, because the hacker and the project founder do not trust each other, the project founder will not directly transfer ETH to the hacker to try to obtain the ownership of the contract. So it's a lose-lose game.

Introduction:

  • The RAAS (rescue project as a service) contract was born to solve the problem of mutual distrust between contract ownership sellers and contract ownership buyers.
  • In the following article, the person who wants to sell the contract owership will be called the seller, and the person who wants to buy the contract owership will be called the buyer.
  • The seller can use the RAAS contract to set the ETH price for selling the target contract ownership, and transfer the target contract ownership to the RAAS contract for safekeeping.
  • Then the seller needs to notify any buyer who wants to rescue the project, and they can buy back the ownership of the target project contract through the RAAS contract. The RAAS contract will extract a small portion (1% - 10%) of the ETH sent by the buyer as the platform usage fee, and the majority of the remaining ETH will be directly transferred to the seller. Finally, RAAS will transfer the ownership of the target contract to the buyer, and mint a RAAS NFT for the buyer as a milestone that the project has overcome many difficulties and reborn.
  • If the target contract ownership is not successfully solded, the contract ownership will be retrieved by the seller or permanently destroyed or permanently imprisoned by RAAS according to the seller's settings. If the final contract ownership is permanently destroyed, a RAAS NFT will be minted for the seller as a commemoration of purifying the Web3 space.

usage:

For Buyer:

There are three steps in total

Step one:

Use the free public function existsValidOwnershipTrade(address _targetContract) of RAAS to query whether the target contract is currently available for purchase, returning true means that it is currently available for purchase, and returning false means that it is currently unavailable for purchase.

Step two:

Use the free public function getCurrentOwnershipPrice(address _targetContract) of RAAS to query the current price of the target contract ownership, and the unit of returned result is wei.

Step three:

Send the ETH (wei) of the price in step two, and call the buyOwnership(address _targetContract) function of RAAS to buy the targe contract ownership.

For seller:

there are three steps in total

Step one:

The seller need calls the depositedOwnershipWithFixPrice or depositedOwnershipWithDutchAuction function of RAAS and storing the sell information about the ownership of the target contract.

the depositedOwnershipWithFixPrice function is to sell contract ownership at a fixed price for a limited period of time. The function prototype is as follows:

depositedOwnershipWithFixPrice(address _receiveETHAddress, address _targetContract, uint256 _fixBuyPrice, uint256 _durationDays, uint256 _expireOperation)

The _receiveETHAddress parameter is the address where the seller receives the ETH sent by the buyer;

The _targetContract parameter is the address of the target contract to sell the ownership;

The _fixBuyPrice parameter is a fixed price for selling contract ownership, the unit is wei, for example, passing in the value of 1000000000000000000 means that the price is 1 ETH; It should be noted that the price of _fixBuyPrice cannot be lower than the currentMinBuyPrice value in RAAS contract.

The _durationDays parameter is the total duration of days for the sale. The valid range of the parameter value is an integer from 1 to 30, indicating that the sale lasts for 1 - 30 days;

The _expireOperation parameter is the disposal method for the target contract ownership after the sale expires. The valid range of the parameter value is 0, 1, 2; 0 means that after the sale expires, the seller can retrieve the ownership of the target contract from the RAAS; 1 means the sale to After the expiration, the contract's ownership will be destroyed; 2 means that the target contract ownership will be permanently retained in RAAS after the sale expires. Of course, RAAS cannot do anything with the target contract ownership, which means that the authority is permanently imprisoned.

The depositedOwnershipWithDutchAuction function is basically the same as depositedOwnershipWithFixPrice, The difference is that it can sell contract ownership for a limited period of time at a price within a specified range, and the price of purchasing will gradually decrease from the _maxBuyPrice price to the _minBuyPrice price, until it becomes unavailable for purchase. the function prototype is as follows:

depositedOwnershipWithDutchAuction(address _receiveETHAddress, address _targetContract, uint256 _minBuyPrice, uint256 _maxBuyPrice, uint256 _durationDays, uint256 _expireOperation)

It should be noted that the price of _minBuyPrice cannot be lower than the currentMinBuyPrice value in RAAS contract.

Step two:

The seller needs to call the transferOwnership function of the target contract to transfer the ownership of the target contract to the RAAS contract.

After the above two steps, the transaction of a sales contract is valid. Anyone can check whether a trade is currently effective through the public free existsValidOwnershipTrade(address _targetContract) function of RAAS.

Step three:

Finally, the seller also informs the buyer (project founder/community members) that the target contract ownership has been sold in RAAS, this is the only way to rescue the project, they have to spend a certain amount of money to rescue the project within the time you set, Otherwise, the contract ownership may be destroyed or retrieved by yourself.

The last, if the ownership has exceeded the sale period and has not been successfully sold, the seller can call the sellerRetrieveOwnership(address _targetContract) function of the RAAS contract to try to retrieve the contract ownership for free or permanently destroy the ownership,the exact operator depends on the seller's settings in step one. After the permission is permanently destroyed, an NFT will be minted for the seller.

Subscribe to RAAS
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.