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

Funding an account

Bank transfer, and conversion from a linked crypto wallet

All walkthroughs

Settlement is in dirhams. A crypto holder converts through a licensed venue first — the platform never takes a token position on the investor's behalf.

Real elapsed time: minutes to one business day · 2 external system call(s) · simulated round trip 9,580 ms
Investor
Browser or mobile app
Platform
Application + database
EXT
Bank
Segregated client account
EXT
Crypto venue
Licensed conversion to dirhams
Step 0 of 4
Step 01 Completed 900 ms

Investor is issued a virtual IBAN

Each investor gets a dedicated virtual account under the segregated client account, so an inbound transfer identifies itself without manual matching.

Platform ──▶ Bank HTTPS POST
https://api.bank.ae/v1/virtual-accounts
Request Platform → Bank
{
  "parentAccount" : "Royex Tokenization — client money (segregated)",
  "reference"     : "INV-104",
  "currency"      : "AED",
  "purpose"       : "subscription funding"
}
Response 201 Created
{
  "virtualIban" : "AE07 0331 **** **** **41 04",
  "currency"    : "AED",
  "segregated"  : true,
  "commingled"  : false
}

What changed

  • Virtual IBAN assigned to INV-104
  • Funds segregated from platform operating money
Say this

Segregation is a licence condition, not a nicety. Client money never sits in the operating account.

Step 02 Completed 80 ms

Inbound transfer received and reconciled

The bank notifies the platform. Because the virtual IBAN identifies the investor, reconciliation is automatic rather than a spreadsheet exercise.

Bank ──▶ Platform Webhook
POST /webhooks/bank/credit
Bank notification Bank → Platform
{
  "event"       : "credit.received",
  "virtualIban" : "AE07 0331 **** **** **41 04",
  "amount"      : 400000.00,
  "currency"    : "AED",
  "remitter"    : "HADDAD O",
  "valueDate"   : "settled",
  "bankRef"     : "FT26081100418"
}
Platform response 200 OK
{
  "matchedAccount" : "INV-104",
  "credited"       : 400000.00,
  "ledgerEntry"    : "DEP-418306",
  "balance"        : 400000.00,
  "reconciled"     : true
}

What changed

  • Balance AED 400,000.00
  • Ledger entry DEP-418306 written
  • Reconciled to bank reference FT26081100418
Step 03 Completed 3,400 ms

Investor links a crypto wallet

The wallet is screened before it is accepted. Linking is not the same as funding — no value has moved yet.

Investor ──▶ Platform HTTPS POST
/Wallet/LinkWallet
Request Investor → Platform
{
  "address" : "0x8f42d1a9037c5be216d84f0913ab7e2c56d1904f",
  "network" : "Ethereum",
  "proof"   : "signature over challenge nonce"
}
Response 200 OK
{
  "linked"          : true,
  "ownershipProven" : true,
  "chainAnalysis"   : {
    "riskScore"     : "low",
    "sanctionedCounterparties" : 0,
    "mixerExposure" : "none"
  },
  "usableFor" : "conversion to AED only"
}

What changed

  • Wallet linked and ownership proven
  • Chain analysis retained as evidence
Say this

Wallet screening is where AML actually bites on a crypto platform. A clean investor with a tainted wallet is still a problem.

Step 04 Completed 5,200 ms

Conversion to dirhams through a licensed venue

The investor sells crypto for dirhams at a licensed venue, and the dirhams land in the segregated account. Tokens are never bought with cryptocurrency.

Platform ──▶ Crypto venue HTTPS POST
https://api.venue.ae/v1/conversions
Request Platform → Crypto venue
{
  "fromWallet" : "0x8f42...904f",
  "sellAsset"  : "USDT",
  "sellAmount" : 13620.00,
  "buyCurrency": "AED",
  "payoutTo"   : "AE07 0331 **** **** **41 04",
  "onBehalfOf" : "INV-104"
}
Response 200 OK
{
  "conversionId" : "CNV-771204",
  "rate"         : 3.6712,
  "grossAed"     : 50001.74,
  "venueFee"     : 1.74,
  "netAed"       : 50000.00,
  "payoutStatus" : "settled",
  "settlementAsset" : "AED"
}

What changed

  • AED 50,000.00 credited
  • Balance AED 450,000.00
  • No crypto held by the platform at any point
Say this

This is the architectural point most demos get wrong. The payment layer is a banking integration. Crypto is an on-ramp, not the settlement currency.