Demonstration environment — simulated contracts and approvals, nothing stored
Royex Technologies RoyexTokenization
Investor sign in Open an account
Adding a property Investor onboarding Funding an account Buying tokens and issuing the deed Reselling on the secondary market A transfer that gets refused Paying out rental income
Walkthrough · 4 steps

Paying out rental income

Rent collected, costs deducted, net income apportioned by token balance

All walkthroughs

Gross rent is not what an investor receives. Service charges, management fee, platform fee and insurance are settled by the SPV first, and only net income is distributed.

Real elapsed time: monthly cycle · 2 external system call(s) · simulated round trip 2,330 ms
EXT
Bank
Segregated client account
Platform
Application + database
Operator
Royex Tokenization console
EXT
Token contract
Permissioned token on chain
Investor
Browser or mobile app
Step 0 of 4
Step 01 Completed 70 ms

Rent received into the SPV account

The property manager collects rent from the tenant and remits it to the vehicle that holds the property.

Bank ──▶ Platform Webhook
POST /webhooks/bank/credit
Bank notification Bank → Platform
{
  "event"    : "credit.received",
  "account"  : "Royex SPV 1001 FZCO — rental account",
  "amount"   : 14000.00,
  "currency" : "AED",
  "remitter" : "property manager",
  "period"   : "August 2026"
}
Platform response 200 OK
{
  "recognised" : true,
  "grossRent"  : 14000.00,
  "assetRef"   : "PRP-1001",
  "status"     : "awaiting cost settlement"
}

What changed

  • Gross rent AED 14,000.00 recognised
Step 02 Completed 1,600 ms

Operating costs settled

The vehicle pays service charges, the property manager, insurance and the platform fee before anything is distributed. This is why net yield is below gross.

Platform ──▶ Bank HTTPS POST
https://api.bank.ae/v1/payments (batch)
Request Platform → Bank
{
  "period" : "August 2026",
  "payments" : [
    { "payee" : "owners association — service charges", "amount" : 1756.67 },
    { "payee" : "property manager (8%)", "amount" : 1064.00 },
    { "payee" : "insurer", "amount" : 283.33 },
    { "payee" : "Royex Tokenization (1.5%)", "amount" : 199.50 }
  ]
}
Response 200 OK
{
  "allSettled"     : true,
  "totalCosts"     : 3303.50,
  "vacancyAllowance" : 700.00,
  "netOperatingIncome" : 9996.50,
  "distributable"  : 9996.50
}

What changed

  • Costs of AED 3,303.50 settled
  • Distributable pool AED 9,996.50
Say this

Gross yield on this asset is 7.00%. Net is 5.00%. Showing that gap honestly is what separates a real estate platform from a crypto pitch.

Step 03 Completed 420 ms

Holder register read from the contract

Balances are read from the chain at the record date, not from an internal spreadsheet. Anyone who bought on the secondary market yesterday is included automatically.

Platform ──▶ Token contract JSON-RPC (read)
holders() at record block
Request Platform → Token contract
{
  "method" : "holdersAt",
  "params" : { "contract" : "0x41945f556471d0ff07411f2c39587b68a42a6c83", "block" : 21875410 }
}
Response 200 OK
{
  "recordBlock"  : 21875410,
  "holderCount"  : 3,
  "tokensHeld"   : 1,680,
  "holders" : [
    { "accountRef" : "INV-101", "tokens" : 260 },
    { "accountRef" : "INV-104", "tokens" : 240 },
    { "accountRef" : "INV-102", "tokens" : 140 }
  ]
}

What changed

  • Holder register fixed at the record block
Step 04 Completed 240 ms

Distribution apportioned and paid

Net income is divided by token balance and credited to each holder in dirhams. Every line appears on the investor's statement and in the distribution history export.

Operator ──▶ Investor HTTPS POST
/Admin/Advance (step=distribute)
Request Operator → Investor
{
  "assetRef"   : "PRP-1001",
  "period"     : "August 2026",
  "pool"       : 9996.50,
  "perToken"   : 4.1652,
  "basis"      : "token balance at record block"
}
Response 200 OK
{
  "reference"   : "DIST-64118",
  "paid" : [
    { "accountRef" : "INV-101", "tokens" : 260, "amount" : 1082.95 },
    { "accountRef" : "INV-104", "tokens" : 240, "amount" : 999.65 },
    { "accountRef" : "INV-102", "tokens" : 140, "amount" : 583.13 }
  ],
  "totalPaid"  : 9996.50,
  "currency"   : "AED",
  "appearsIn"  : ["wallet", "statement", "distribution history export"]
}

What changed

  • Three holders credited
  • Distribution DIST-64118 on the audit trail
  • Investor statements updated