A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Subcategories

  • Useful additions for your everyday life.

    749 Topics
    13k Posts
    A
    Thanks for sharing.
  • Tweak your system until it is just right.

    151 Topics
    4k Posts
    R
    MMM-PresenceScreenControl — two new releases (ecoMode + Notification API) Dear all a small but meaningful round of updates for MMM-PresenceScreenControl just landed on main. Both started from a single GitHub issue, so I thought I’d write up the chain of reasoning rather than just drop a changelog — maybe useful for anyone evaluating a migration from MMM-Pir, and definitely useful as a reminder to myself to check the parent project’s feature surface more carefully when forking. Part 1 — ecoMode (Issue #5) Rocket78 opened issue #5 with a really well-argued request: even with the screen physically off, Electron keeps repainting hidden DOM. On a Pi 3 with X11, MMM-PresenceScreenControl was leaving things like Newsfeed cross-fades running every 20 seconds — and those repaints showed up clearly as CPU spikes in his graph. He asked for an equivalent of MMM-Pir’s ecoMode, which hides every other module while the screen is off, so the browser skips layout/paint/composite for them. So I built it, but tried to keep it lean: ecoMode: false, // opt-in, default off → no surprise ecoModeIgnore: [] // module names to keep visible Implementation notes that might interest other module authors: Rocket78 also dropped a great ddcutil snippet in the issue for monitors that show a “no signal” splash when the video output is cut — that splash is genuinely immersion-breaking, and ddcutil setvcp D6 sends the actual DDC/CI power command, which is much closer to pressing the hardware power button: onCommand: ddcutil setvcp D6 1 --skip-ddc-checks offCommand: ddcutil setvcp D6 5 --skip-ddc-checks Added to the README’s offCommand examples. The --skip-ddc-checks is needed because some monitors stop responding to DDC queries when powered off but still process incoming power-on commands — so the check would fail before the command is even sent. → Issue #5 closed, commit 42b68a6. Part 2 — what else did I miss? Closing the issue could have been the end of it. But Rocket78’s request raised an uncomfortable question: I never used ecoMode in MMM-Pir myself, so I didn’t notice it was missing. What else did I overlook when reviving MMM-Pir? Three items jumped out as actual gaps that other modules in the ecosystem could legitimately depend on: MMM_PIR-USER_PRESENCE — MMM-Pir broadcasts this notification on presence transitions. Other modules (Remote-Control, voice assistants, smart-home bridges) can listen for it. MMM_PIR-WAKEUP / LOCK / UNLOCK / END — incoming notifications that let other modules control the screen logic externally. MMM_PIR-SCREEN_POWERSTATUS — broadcast when the physical screen turns on or off. Without these, anyone migrating from MMM-Pir to my fork would suddenly find their automations dead — because they’d be listening for MMM_PIR-USER_PRESENCE and nothing was coming through. Even worse, they wouldn’t know why it stopped working; the screen-on/off behavior would seem fine, but cross-module integration would be silently broken. So I built a parallel notification API, namespaced MMM_PSC-* rather than impersonating MMM-Pir’s MMM_PIR-*: Outgoing notifications — emitted on state transitions only: MMM_PSC-USER_PRESENCE payload: true / false fires when combined presence changes MMM_PSC-SCREEN_POWERSTATUS payload: true / false fires when physical screen turns on/off Both fire only on actual transitions — no spam every poll cycle. Incoming notifications — consumed by the module MMM_PSC-WAKEUP wake screen, reset timer (equivalent to a touch) MMM_PSC-END force screen off immediately MMM_PSC-LOCK freeze presence handling — sensors are still tracked internally, but no longer change screen state MMM_PSC-UNLOCK resume normal presence handling and re-evaluate the current sensor state Implementation detail worth flagging: the LOCK guard sits in updatePresence(), which is the single funnel through which all sensor inputs (PIR, MQTT, touch, external wakeup socket) eventually pass. So whatever the trigger source, it’s correctly suppressed while locked. UNLOCK calls updatePresence() again, which re-evaluates the current sensor state — so if you’ve unlocked while a person is still in front of the PIR, the screen comes back on immediately. No need for the caller to send a WAKEUP after UNLOCK. Useful patterns this enables: // Wake the mirror when a doorbell event arrives: this.sendNotification("MMM_PSC-WAKEUP"); // Force-off cleanly from outside (smart-home rule, etc.) without // bypassing the module and going straight to the screen command: this.sendNotification("MMM_PSC-END"); // Take exclusive control of the display for a video call, // then hand it back when done: this.sendNotification("MMM_PSC-LOCK"); // ... your module is showing its full-screen content ... this.sendNotification("MMM_PSC-UNLOCK"); END is the clean way to force-off the screen from outside without touching offCommand directly — the module’s internal state stays consistent, all the right outgoing notifications still fire, and any other listeners (logging, analytics, smart home) see the transition. Tested live end-to-end via MMM-Remote-Control’s notification API: curl -X GET "http://localhost:8080/api/notification/MMM_PSC-LOCK" curl -X GET "http://localhost:8080/api/notification/MMM_PSC-END" → screen off, stays off curl -X GET "http://localhost:8080/api/notification/MMM_PSC-WAKEUP" → ignored (locked) curl -X GET "http://localhost:8080/api/notification/MMM_PSC-UNLOCK" → screen back on All four routes verified, log trace clean, outgoing notifications fired in the right order on every transition. → Commit 10000ca. Update / install If you’re already on the module: cd ~/MagicMirror/modules/MMM-PresenceScreenControl rm -rf node_modules git pull npm install Both changes are backwards-compatible. ecoMode is opt-in (default false), and the new notifications are additive — nothing existing is modified. So you can update without touching your config and pick up only what you need. A genuine thank-you to Rocket78 for the well-reasoned issue and the ddcutil tip — it triggered the full audit, which in turn closed a much bigger latent gap. Exactly the kind of feedback that improves a fork. If you’ve migrated from MMM-Pir and notice anything else missing that you’d consider load-bearing, please open an issue. Hope you find it useful. Warmest regards, Ralf
  • Find your next train with ease!

    145 Topics
    2k Posts
    G
    Hi Guys As a young lad I was an avid traveler and hitched hiked from John O Groats to Lands End at the age of 14 and I have had the travel bug ever since . My children and grandkids have also got the travel bug - my youngest granddaughter is about to embark on a round the world trip with her parents and younger brother. She has already visited 9 countries so far – not bad for a 2 year old. So I decided to try and make a module that would be helpful to them on their travels and allow me and the wife to share in their adventures from afar. Where to start – well there was only one place , the innovative MMM-iHaveBeen there by Sebastian Merke. This is the module that first got me hooked on Magic Mirror, and it got me thinking how could I modify it to fit with my four loves, family, flying, football and travel. After lots of trial and many errors and frequent help from AI assistance I would now like to introduce the result - MMM-iAmGoingThere , a MagicMirror² module designed for travelers and flight enthusiasts to track their current live trips and visualize their past travel history and future planed trips. https://github.com/gitgitaway/MMM-iAmGoingThere [image: Screenshot1.png] [image: Screenshot2.png] [image: Screenshot3.png] [image: Screenshot4.png] [image: Screenshot5.png] [image: Screenshot6.png] Core Features: Live Flight Tracking: Real-time updates via FlightAware AeroAPI, showing live flight paths, and estimated arrival times (ETA). Dynamic Scenarios: Supports 6 distinct travel modes, including round trips, multi-leg “Round the World” journeys, multi-origin traveler tracking, and a dedicated Football Away Days mode. Interactive Travel Visualization: Great-Circle Paths: Smooth, color-coded arcs showing exactly where you’ve been and where you’re going. Interactive Globe: Auto-rotates to keep active planes in focus on 3D projections. Manual Mapping: Right-click any country to mark it as “visited” with persistent saving to a local cache. Travel Companion Tools: City Guides: Integrated Top 10 attraction lists that automatically update based on your active destination or marker clicks & links to airport terminal maps Live Weather: Real-time destination weather updates via Open-Meteo. Countdown Timers: Precision tracking for your next departure.
  • Boost your productivity.

    62 Topics
    1k Posts
    htilburgsH
    @vansman Just updated the module. Since now Voltage is added, where autodetection is for 1-phase of 3-phase. Don’t forget to update your config.js with currentVoltage: true, // compact 3-fase, auto detection I hope this is what you were asking for.
  • Learn something new every day.

    55 Topics
    982 Posts
    KristjanESPERANTOK
    @christian-klein I like it! Don’t forget to add it to the module list: https://github.com/MagicMirrorOrg/MagicMirror/wiki/3rd-party-modules 🙂
  • Stay healthy and work on your well-being.

    28 Topics
    703 Posts
    P
    I built a module to surface basic data from my Whoop tracker: Sleep (with prior day contrast) Recovery (with prior day contrast) Strain (with prior day contrast) Activities from the curent day Multi-user support for shared mirrors Available at: https://github.com/frankrenehan/MMM-Whoop
  • Entertainment right from your mirror.

    188 Topics
    3k Posts
    T
    MMM-Charms is a MagicMirror² module for displaying rotating affirmations, reminders, reflective prompts, and curated quote/dialogue packs from multiple named sets. It supports local JSON packs, simple text sets, manual switching between packs, tap/click cycling, and optional time-based pack switching. Current packs include: General Calm Confidence Family Gentle Reminders Hard Days Grounding Quotes Bollywood Video Game Quotes The idea behind MMM-Charms came with a desire to add quotes from Bollywood movies and video games :) . It then became an attempt to make the mirror feel a little more reflective and customizable. It can now be used for personal affirmations, family-oriented prompts, calmer household messaging, themed quote packs, reminders for timed chores or fun pop-culture rotations. I am curious to find out what packs users might come up with. It is rightly placed under ‘Entertainment’ on this forum. Please remember this is not a substitute for professional mental health, medical, therapeutic, or crisis support. Screenshots: [image: 1777864439580-mmm-charms-2.png] [image: 1777864453706-mmm-charms-1.png] Download: [card:testingonlypi/MMM-Charms] The readme file clearly states the use of AI to create this module. I am not and will never be a coder of any standard, and would never seek to replace those who are more experienced, committed and better at this… same as I can take photos, but may not be a professional photographer. Version 0.1.0 First public release Added support for multiple named packs Added manual switching between packs Added optional tap/click cycling Added optional time-based pack switching Added JSON pack support Included curated packs for General, Calm, Confidence, Family, Gentle Reminders, Hard Days, Grounding, Quotes, Bollywood, and Video Game Quotes
  • Have some fun!

    59 Topics
    719 Posts
    R
    MMM-Chance My wife and I like to flip a coin to make decisions. I decided to incorporate this (plus some more fun chance options) into our MM! What it does: Flip coin button with flip animation + Heads/Tails result Custom probability buttons (examples: 1-in-5, 1-in-10, 1-in-100) Dice-style animation for non-coin buttons Configurable buttons so you can create your own odds/actions Listens for notifications if you don’t have a touch-screen and want to trigger the events without a click Very customizable! Example use cases Daily yes/no decisions Game-night odds checks Classroom/random selection moments “Should I do it?” style fun prompts D&D style dice integration (d10, d20, etc.) Install / Repo GitHub: https://github.com/ryan-d-williams/MMM-Chance Examples: [image: 1770680034695-coinflip.gif] [image: 1770680034707-colorcoin.gif] [image: 1770680034720-d20.gif] (the dice animation is a little jumpy because of the gif frame-rate, it looks smoother on the module) [image: 1770680034767-example1.png] [image: 1770680034827-funcolors.gif] I’d love feedback or feature requests!
  • Give your Mirror a work out!

    55 Topics
    1k Posts
    J
    ![alt text](image url)[image: MMM-AFL.png]
  • Showcase Guidelines

    Pinned
    5
    8 Votes
    5 Posts
    7k Views
    P
    @paviro NICE i’m loving it
  • Employee vacations / sickness calendar digitized

    5
    1
    0 Votes
    5 Posts
    198 Views
    UncleRogerU
    @_V_ You could try this module: https://github.com/Unclearogre/MMM-CustomTable I wrote it to be a simple legend underneath my monthly calendar to show which color corresponds to which calendar. I’m not sure how you’d easily update the info though. Google sheets might be the way to go. Depending on how much time you have to spend on this, you could try using AI to create a module.
  • MMM-Globe: Meteosat imagery broken — fork with fix available

    12
    5 Votes
    12 Posts
    989 Views
    R
    Good afternoon, all! europeDiscNat is back! (plus a small CSS fix for a new white footer) for you, guys a quick update on the European satellite image situation. Since my fork EUMETSAT’s new WMS endpoint at view.eumetsat.int/geoserver/wms works fast, reliably and nice. Yesterday that stopped delivering fresh images! Today I figured out there even is a new version (small changes in URL) v1.1.0 is now v1.3.0 API - but both of them are only returning a stale image from yesterday evening: https://view.eumetsat.int/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=msg_fes:rgb_naturalenhncd&... https://view.eumetsat.int/geoserver/wms?service=WMS&version=1.3.0&request=GetMap&layers=msg_fes:rgb_naturalenhncd&... But here’s the surprise: the old europeDiscNat URL is back and working again! So if you’ve been in trouble with looking for actual pictures without the SLIDER API, this works right now: style: 'europeDiscNat', is re-born … One thing to watch out for: Unfortunately EUMETSAT has changed the image format slightly. The footer bar at the bottom (logo + timestamp) used to be black — invisible against the MagicMirror background. It’s now white and a bit taller, which causes a small white artifact at the bottom of the globe. I’ve pushed a fix that adds a black CSS overlay to mask the footer. Just update the module: cd ~/MagicMirror/modules/MMM-Globe git pull npm install Of course the SLIDER styles (geoColorEurope, geoColorUSA, etc.) continue to work fine if you prefer those. Happy mirroring! Warmest regards, Ralf
  • MMM-DriveImages – Google Drive Image Slideshow (No API Keys)

    1
    1
    0 Votes
    1 Posts
    127 Views
    D
    Hi everyone, The goal was to make something simple and reliable without requiring any API keys or Google developer setup. In the spirit of giving back to the MagicMirror community, and as a companion to MMM-DriveVideos, here is: MMM-DriveImages Features: Displays images from Google Drive No API keys required No OAuth app setup Automatic background syncing (no cron) Simple setup for non-technical users Supports linear or random playback Setup is done with a single command: ~/MagicMirror/modules/MMM-DriveImages/connect After that, just upload photos to a Google Drive folder named: mirror-images The mirror updates automatically. Repo: https://github.com/Dresch360/MMM-DriveImages Would love and appreciate any feedback. [image: 1775191749009-screenshot.png]
  • 0 Votes
    1 Posts
    89 Views
    D
    Hi everyone, The goal was to make something simple and reliable without requiring any API keys or Google developer setup. In the spirit of giving back to the MagicMirror community, and as a companion to MMM-DriveImages created today, here is: MMM-DriveVideos This module lets you play videos directly from a Google Drive folder using simple browser authentication. No API keys. No Google developer setup. Upload videos to a folder called mirror-videos and they will automatically sync and play on your mirror. MP4 support Linear or random playback Optional sound on or off Fully local playback after sync GitHub: https://github.com/Dresch360/MMM-DriveVideos Would love and appreciate any feedback. [image: 1775191052536-screenshot.png]
  • MMM-ModuleScheduler: need help

    13
    0 Votes
    13 Posts
    571 Views
    S
    @anagallis yes, custom.css is in the MagicMirror/css folder next release (April 1 it will move to the config folder (user files will all be in one place)
  • 1 Votes
    1 Posts
    148 Views
    damithsjD
    Description: A MagicMirror² module that displays aurora viewing probability for your location along with the 3-day Kp index forecast from NOAA Screenshots: [image: compact.png] [image: detailed.png] Download: MMM-AuroraForecast Features Aurora probability % at your exact coordinates (NOAA Ovation model) Current Kp index with colour-coded geomagnetic storm level Geomagnetic storm badge (G1–G5) when active Hourly Kp breakdown for today — past slots hidden automatically 3-day peak Kp summary with visual bars Two layouts: detailed and compact Data Sources Data Source Aurora probability NOAA Ovation Aurora JSON Kp index forecast NOAA 3-Day Forecast Version 1 Initial release
  • MMM-GooglePhotos refactor

    3
    1 Votes
    3 Posts
    401 Views
    P
    Excellent call, I’ve created an issue on the source.
  • 1 Votes
    3 Posts
    338 Views
    B
    @Eli Great :) Let me know what you think. There’s been a small update since then — it can now display not only the calendar but also the task list, and this can be configured optionally.
  • 1 Votes
    7 Posts
    702 Views
    A
    I’ve released v0.8.0. Here’s the release notes: [0.8.0] - 2026-01-09 Added Portfolio Performance Charts: Visual tracking of portfolio value over time Area chart with gradient fill Hourly snapshots (rolling 48 hours) for 1D view Daily snapshots for 1W, 1M, 3M, 1Y, All views Chart.js integration via CDN Chart Configuration Options: showCharts - Enable chart display (default: false) chartMode - “combined” / “separate” / “exclude-crypto” chartPeriod - “1D” / “1W” / “1M” / “3M” / “1Y” / “All” showPeriodSelector - Show period buttons for touch devices (default: false) historyRetention - Days to retain daily history (default: 1825 / 5 years) History Storage: Local history.json file for snapshot data ~600 bytes per snapshot (10 holdings) ~250 KB after 1 year, ~1.1 MB after 5 years Changed Price updates now record hourly snapshots for chart data Holdings sync now records daily snapshots for chart data
  • [MMM-Nextcloud] Show random photos from your Nextcloud

    1
    1
    2 Votes
    1 Posts
    2k Views
    S
    Description: A MagicMirror² module for displaying random photos from your Nextcloud instance. Add tags parsed from exif information, add a Instgramm Blur effect or show your photos as greyscaled images, Screenshots: [image: fullscreen_with_tag.png] [image: small_no_blur.png] [image: small_blur.png] Download: Check more information here: https://github.com/schlomm/MMM-Nextcloud Version 1.0.0 First version adding the overall functioanilties.
  • 0 Votes
    3 Posts
    1k Views
    U
    @BKeyport yeah for sure, but its all public data sources so why not.
  • [MMM-YoLink] Pull your sensor info into your display!

    1
    1
    0 Votes
    1 Posts
    590 Views
    L
    Hello everyone, After a lot of trial, error, and some great collaboration, I’m excited to share a new module for displaying YoLink sensor data on your MagicMirror. This module connects to your YoLink account and can display data from your various sensors, like temperature, humidity, and leak detectors. Key Features: Auto-Discovery: No need to manually enter device IDs! Just provide your API keys, and the module will find and display all your compatible sensors. Two-Column Layout: Display a primary sensor statically on the left while rotating through your other sensors on the right. Customizable Alerts: Set up visual alerts, like a flashing name and red text, for specific events like a temperature drop on a monitored sensor. Highly Configurable: Easily filter which devices to show, set custom colors, change temperature units, and more. [image: 1752502951042-573f0e42-c32f-42ed-91b1-c424f3590008-image.png] Download and Instructions: You can find the module, along with detailed installation and configuration instructions, on my GitHub repository: https://github.com/LindsayCole/MMM-YoLink A big thank you to the community for all the indirect help through various forum posts and code repositories that made this possible. This was a community effort, and I hope it can help others who want to integrate their YoLink devices. Please note that I’m sharing this out of goodwill and can’t provide official support, but I’ll do my best to answer questions if I can. Enjoy!
  • 0 Votes
    4 Posts
    1k Views
    S
    @jhjang101 ok…
  • [MMM-NounishReminder] Nounish Event Reminder for your MM

    4
    0 Votes
    4 Posts
    970 Views
    R
    @xppaicyber said Now you can customize the header text through the config.js file using the new header option: Dear XppaiCyberr, this is awesome! Thanks a LOT. Warmest regards, Ralf
  • [MMM-NounsStream] Real-time Nouns DAO Payroll Stream

    1
    0 Votes
    1 Posts
    502 Views
    X
    Description The MMM-NounsStream module provides a sleek interface for monitoring Nouns DAO payroll streams in real-time. It displays active streams with their progress, monthly amounts, and recipient information directly on your MagicMirror. Key features include: Real-time progress tracking of active streams Monthly and total amount display in both USDC and WETH Visual progress bars for intuitive stream status ENS name resolution for recipient addresses Automatic updates at configurable intervals Clean and modern UI that fits the MagicMirror aesthetic Perfect for DAO contributors and anyone interested in monitoring Nouns DAO treasury allocations. Screenshots [image: screenshot.png] Download [MMM-NounsStream] Version 1.0.0 Initial release Basic stream information display Progress bar visualization Added ENS name resolution Added configurable header text Enhanced recipient address display Improved error handling Enhanced update mechanism Added support for more stream contracts If you have any questions or feature requests for future versions, please don’t hesitate to open an issue on GitHub!
  • [MMM-NounsTimeline] Live Nouns Warpcast Channel Timeline for MagicMirror

    1
    1 Votes
    1 Posts
    491 Views
    X
    Description: MMM-NounsTimeline is a powerful MagicMirror module that brings the vibrant world of Nouns directly to your mirror. This module displays a dynamic timeline of casts from Nouns, providing real-time updates of community interactions, discussions, and announcements. Key features include: Real-time display of Nouns casts with author information Beautiful profile picture integration Engagement metrics (likes and replies) Automatic cycling through multiple casts Customizable display settings Smooth animations and transitions Responsive design that works on any mirror size The module automatically cycles through casts, showing a configurable number of posts at a time, with smooth transitions between sets. It’s perfect for staying connected with the Nouns community while going about your daily routine. Screenshots: [image: preview.png?raw=true] Download: [MMM-NounsTimeline] Version 1.0.0 Initial release Real-time Nouns timeline display Author information with profile pictures Engagement metrics display Automatic cycling through casts Customizable display settings Smooth animations Pinata API integration for reliable data fetching
  • 0 Votes
    1 Posts
    464 Views
    X
    Description: MMM-NounsTreasury is a MagicMirror² module that displays real-time information about the Lil Nouns DAO treasury portfolio. This module provides a clean and intuitive interface to monitor the treasury’s holdings, including ETH and various ERC-20 tokens. Key Features: Real-time display of total portfolio value in USD or IDR Detailed breakdown of ETH and major token holdings Configurable token list with support for popular assets like stETH, USDC, rETH, WETH, and wstETH Automatic updates every 5 minutes (configurable) Support for multiple currencies (USD/IDR) Configurable display options for token balances The module uses the Alchemy API to fetch on-chain data and CoinGecko for price information, ensuring accurate and up-to-date portfolio valuations. Screenshots: [image: preview.png] Download: XppaiCyberr/MMM-LilNounsTreasury Version 1.0.0 Initial release Display total portfolio value Support for ETH and major ERC-20 tokens Real-time price updates Configurable display options Multi-currency support (USD/IDR)
  • [MMM-NounsProposal] Displays the latest proposals from the NounsDAO.

    1
    1
    0 Votes
    1 Posts
    492 Views
    X
    Description: MMM-NounsProposal is a MagicMirror² module that displays the latest proposals from the Nouns DAO - a popular Ethereum-based decentralized autonomous organization. The module shows proposal details including titles, status, proposer information, and real-time voting statistics with visual progress bars. This module fetches data directly from the Nouns DAO blockchain contracts and API to provide up-to-date information on governance proposals. It displays proposal titles, status badges (Active, Pending, Executed, Defeated, etc.), voting statistics with colored progress bars showing For/Against/Abstain votes, and quorum indicators. Key features include: Display latest Nouns DAO proposals with real-time voting data Automatic pagination with configurable page cycling for viewing multiple proposals Visual progress bars showing voting distribution Customizable update intervals and display options ENS name resolution for proposer addresses Responsive design that works well on various MagicMirror sizes Perfect for crypto enthusiasts, DAO participants, or anyone interested in tracking Nouns governance activity on their smart mirror! Screenshots: [image: 1742839571871-c4ae0a74-02f4-474a-88cb-50a792e1446d-b040ea6a-59a2-4937-9581-b70f7247c899.png] Download: [XppaiCyberr/MMM-NounsProposal] Version 1.0.0 Initial release Display of latest Nouns DAO proposals with titles and proposer info Real-time voting statistics with visual progress bars Automatic pagination with configurable cycling ENS name resolution for proposer addresses Status badges for proposal states (Active, Pending, Executed, etc.)
  • 2 Votes
    1 Posts
    528 Views
    X
    Description: MMM-NounsTreasury is a MagicMirror² module that displays real-time information about the Nouns DAO treasury portfolio. This module provides a clean and intuitive interface to monitor the treasury’s holdings, including ETH and various ERC-20 tokens. Key Features: Real-time display of total portfolio value in USD or IDR Detailed breakdown of ETH and major token holdings Configurable token list with support for popular assets like stETH, USDC, rETH, WETH, and wstETH Automatic updates every 5 minutes (configurable) Support for multiple currencies (USD/IDR) Configurable display options for token balances The module uses the Alchemy API to fetch on-chain data and CoinGecko for price information, ensuring accurate and up-to-date portfolio valuations. Screenshots: [image: 1742635743295-d5142b69-519a-42fa-ac27-cb7e4e42cea7-b1a2878d-aa65-4076-bbff-00e8894649de.png] Download: XppaiCyberr/MMM-NounsTreasury Version 1.0.0 Initial release Display total portfolio value Support for ETH and major ERC-20 tokens Real-time price updates Configurable display options Multi-currency support (USD/IDR)