```mermaid flowchart TD Homeserver[Matrix\nHomeserver] Contracts <-- Node.js blockchain\nclient library (ethers) --> API Contracts <-- Web-based blockchain client library\n(MetaMask / Casper Wallet)--> WebApp Contracts <-- Web-based blockchain client library\n(MetaMask / Casper Wallet)--> Widget WebApp <-- HTTPS --> API Widget <-- HTTPS --> API Widget <-- Element-web Widget API\n(npm matrix-widget-api) --> Homeserver API <-- Matrix Client-Server Protocol\n(npm matrix-bot-sdk) --> Homeserver ```