Skip to content
SP
All work

URSSET

LiveSoloHackathon participant

Buy a share of a rental property, receive rent, and resell, with ownership and payouts verifiable onchain. Runs on Robinhood Chain Testnet (testnet, not real money).

URSSET home screen on a phone in Indonesian: the headline '3 langkah, kamu punya aset' and the three-step guide

1The problem

Renting out or co-owning a house is closed to small investors. On fractional platforms money is often locked up and investors have to trust the operator's rent reports. Crypto products add wallets, gas and seed phrases on top.

URSSET tries to hide the blockchain from the user while keeping the facts that matter verifiable onchain.

2My role

  • Everything: the Solidity contracts, the Foundry test suite, the Next.js app, the API routes, the bilingual ID/EN interface and the deployment.
  • Sign-in uses Privy embedded wallets (email or Google), so there is no seed phrase and no gas for the user.

Third-party pieces are credited in the repo README: Scaffold-ETH 2, OpenZeppelin, Foundry, Privy.

3Approach

A Next.js app for investors and a server for the operator talk to contracts on Robinhood Chain Testnet. A factory lists a property in one transaction by deploying and wiring four contracts; three more are shared. That is the 7 contract types in the diagram.

Every rent deposit and its pro-rata split is an onchain event, and each transaction in the UI links to the explorer as proof.

Investor appNext.js, Privy loginOperator serverAPI routes, KYC flag, rentROBINHOOD CHAIN TESTNET (46630)PropertyFactorylists a property in one transactionPropertyTokenPrimarySaleRentDistributorMarketplace4 contracts per property + 3 shared = 7 typesKYCRegistrychecked on every transferMockIDR (tIDR)test Rupiah, zero decimalsEvery rent deposit and split is an onchain eventanyone can check.
Architecture redrawn from the repo README.

4Decisions and trade-offs

KYC allow-list inside the token contract

Units can only move between wallets verified in the KYCRegistry. A transfer to an unverified wallet is rejected by the contract, not by the app. This is an allow-list, not a claim of regulatory compliance.

Non-custodial resale and pro-rata rent

Resale happens through a marketplace contract between verified investors at a price the seller sets, and the seller keeps earning rent while listed. Rent is split by units held.

What I would change

The test token skips the approve step so a purchase is one transaction; a production setup would use a licensed payment provider and normal approvals. A single operator key can verify wallets, mint test Rupiah and deposit rent; production needs real KYC and rent from the SPV's bank account. Rent is split with a snapshot at deposit time, which a buyer could game, and I have no contract-level fix for it yet.

5Results

  • 45 Foundry tests, covering the factory, KYC, sale, rent and marketplace, plus property-based invariants.
  • 7 Solidity contract types, deployed to Robinhood Chain Testnet.
  • Bilingual (Indonesian and English) live demo, with pitch and demo videos.
  • Scope is honest: a hackathon entry on a test network, with test Rupiah. I took part; I claim no placement.

6Screens

URSSET property page in Indonesian: Kos Dago Asri Bandung with unit price, occupancy and sign-in panel
Property page on desktop (Indonesian default). Testnet demo, illustrative data.
URSSET home screen on a phone in Indonesian: the headline '3 langkah, kamu punya aset' and the three-step guide
Home on mobile, Indonesian. The product is mobile-first.
URSSET home screen on a phone in English: '3 steps, you own an asset'
Same screen in English, from the ID | EN switch.
URSSET home page on desktop in English with the three-step How it works row
Home on desktop, English.
URSSET property page on a phone in English with units sold and the start button
Property page on mobile, English: units sold, verified-onchain badge, price per unit.

7What I learned and what is next

Writing the limits down (the repo has a Limits section and a security review that is explicitly not a third-party audit) made the demo easier to defend.

Next: a pilot with one real boarding house, a sandbox application, a licensed payment partner.

Hire me