Rentools World EstateRentools World Estate
Documentation

Rentools World Estate — user docs

A complete, no-jargon guide to using the $RENTOOLS rental protocol. Read top to bottom, or jump to a section on the right.

1. Overview

Rentools World Estate is an Airbnb-style rental protocol where every property is a single ERC-721 NFT. Hosts mint the NFT for their place, guests pay ETH rent onchain, and the NFT physically moves to the guest's wallet for the exact duration of their stay — then returns to the host automatically.

  • Chain: Robinhood Chain (ID 4663).
  • Currency: ETH for rent, $RENTOOLS token for governance/rewards.
  • Protocol fee: 1% of every rent payment, held in the vault treasury.
  • Custody: the NFT is soulbound while a rental is active — only the protocol itself can move it.

2. Quick start

  1. Step 1
    Install a wallet
    MetaMask, Rabby, or Coinbase Wallet — anything EVM.
  2. Step 2
    Add Robinhood Chain
    Chain ID 4663, RPC https://rpc.mainnet.chain.robinhood.com. The Connect button does it for you.
  3. Step 3
    Get some ETH
    Bridge or fund ETH on Robinhood Chain. You'll spend a tiny amount on gas plus rent.
  4. Step 4
    Browse or list
    Open Marketplace to rent a place, or open List to mint your own Property NFT.

3. For hosts

Hosts are wallet addresses that mint Property NFTs. You keep custody of the NFT until a guest rents it.

Mint a listing

  1. Open /list and connect your wallet.
  2. Fill in name, description, image URL, city, address, and coordinates.
  3. Set pricePerDay in ETH and the minDays/maxDays range.
  4. Submit — the transaction calls mintProperty and the NFT lands in your wallet.

Editing a listing

Listings are immutable to keep guest expectations honest. To change price, photos, or details you must burn the old NFT (only allowed when it isn't rented) and mint a fresh one.

Getting paid

When a guest pays rent, the ETH is escrowed in the vault. As soon as endRental is called after the stay ends, the full rent (minus the 1% protocol fee) is released to your wallet. Anyone can call endRental — a keeper, the guest, or you.

4. For guests

Guests rent a Property NFT for a set number of days. During the stay the NFT lives in your wallet as proof-of-use.

  1. Open /marketplace and pick a property.
  2. Choose the number of nights (must be within the host's range).
  3. Review the breakdown: rent = pricePerDay × days, fee = rent × 1%.
  4. Click Pay & receive NFT — one transaction sends ETH and pulls the NFT to you.
  5. At the end of the stay, click End rental (or wait for a keeper). The NFT returns to the host.

While you hold the NFT, you cannot transfer or sell it — the contract blocks all public transfers to protect the host.

5. Fees & payouts

rent = pricePerDay × days
fee = rent × 1% (100 bps)
total = rent + fee ← what the guest pays
On endRental → rent goes to host, fee stays in vault treasury.

No deposit is taken. The 1% fee accumulates in the vault and can be swept by the admin toward the $RENTOOLS reward pool.

Holder discount: wallets that stake ≥ 500,000 $RENTOOLS in the staking vault get a 10% discount voucher applied to listing and voucher fees. See Staking & holder voucher.

6. Staking & holder voucher

Rentools World Estate has a dedicated Staking Protocol (RentoolsStaking.sol) for $RENTOOLS holders. Stake the token to earn a permanent, on-chain 10% discount voucher on the protocol's listing and voucher fees.

Min stake = 500,000 $RENTOOLS
Discount = 10% (1000 bps) on listing / voucher fees
Cooldown = 3 days from requestUnstake → claimUnstake

How to stake

  1. approve(stakingVault, amount) on the $RENTOOLS token contract.
  2. stake(amount) on the staking vault — tokens lock immediately.
  3. As soon as your balance reaches 500,000 RENTOOLS, the voucher is auto-active. No claim tx needed.

How the discount is applied

Fee-charging methods read quoteDiscount(user, fee) from the staking vault. Eligible wallets pay fee × 90%; everyone else pays the full fee. Eligibility is checked at the moment of the transaction — dropping below 500,000 stops future discounts but never claws back past ones.

How to unstake

  1. requestUnstake(amount) — starts the 3-day cooldown, moves tokens to pending.
  2. Wait 3 days.
  3. claimUnstake() — receive your $RENTOOLS back.

6. Disputes

A host can call raiseDispute(tokenId, reason) during an active rental. This freezes the payoutso endRental cannot release funds until resolved.

The protocol admin (the deployer wallet) resolves via resolveDispute(tokenId, toHostBps), splitting the held rent between host and guest in basis points (0–10000). The NFT is returned to the host as part of resolution.

Guests: file evidence off-chain (email, chat, photos) with the admin before requesting a split. Hosts: only dispute in good faith — repeated bad-faith disputes will be denied.

7. Wallet setup

Robinhood Chain network

Network nameRobinhood Chain
Chain ID4663
RPC URLhttps://rpc.mainnet.chain.robinhood.com
SymbolETH
Explorerhttps://robinhoodchain.blockscout.com

The Connect wallet button in the top nav auto-adds or switches to this network. If your wallet doesn't support automatic adds, paste the values above into your custom network form.

8. Contract reference

The rental logic lives in a single Solidity file, EstatesRental.sol. All state is on-chain and public.

Contract0x795c757c5bA318790B7d465e09D5532B7AAB2E9b
Explorerhttps://robinhoodchain.blockscout.com/address/0x795c757c5bA318790B7d465e09D5532B7AAB2E9b

Write methods

  • mintProperty(tokenURI, pricePerDayWei, minDays, maxDays) — host mints a new listing.
  • burnProperty(tokenId) — host burns an unrented listing.
  • payRent(tokenId, daysCount) payable — guest pays ETH, receives NFT.
  • endRental(tokenId) — anyone can call after endAt.
  • raiseDispute(tokenId, reason) — host only, during active rental.
  • resolveDispute(tokenId, toHostBps) — admin only.
  • sweepFees(to) — admin sends collected fees.

Read methods

  • getListing(tokenId), getRental(tokenId), tokenURI(tokenId), ownerOf(tokenId), totalSupply(), treasuryBalance().

9. Security notes

  • The NFT is soulbound while rented: transferFrom and safeTransferFrom revert for the public.
  • All ETH movements use nonReentrant and low-level call with return-value checks.
  • The admin is set to the deployer at construction. Admin can only: resolve disputes, sweep fees, transfer admin, or emergency-drain.
  • Emergency drain sends the entire contract balance to admin — used only for critical incidents.
  • Contract enforces chain 4663; any call on the wrong chain reverts.

10. FAQ

Do I need a physical key to check in?+

Yes — the NFT is proof of your booking; check-in logistics (keys, lockbox codes) are coordinated off-chain with the host.

Can I cancel after paying?+

Not through the contract. Cancellations must be negotiated with the host, then resolved via raiseDispute + admin split.

Who pays gas?+

Whoever calls the function. Guest pays gas on payRent, host on mintProperty/burnProperty, anyone on endRental.

Can I list one property twice?+

No — one NFT per listing. To offer two rooms in one building, mint two separate Property NFTs.

What if the guest damages the property?+

Host raises a dispute during the rental. Admin reviews evidence and splits the held rent accordingly.

Where do the fees go?+

The 1% protocol fee stays in the vault treasury until swept by admin — typically routed to the $RENTOOLS reward pool.