{"id":15594,"date":"2025-05-02T11:18:00","date_gmt":"2025-05-02T11:18:00","guid":{"rendered":"https:\/\/hederav2stg.wpenginepowered.com\/blog\/how-can-we-model-a-building-in-web3-continued\/"},"modified":"2025-12-08T18:07:16","modified_gmt":"2025-12-08T18:07:16","slug":"how-can-we-model-a-building-in-web3-continued","status":"publish","type":"post","link":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/","title":{"rendered":"How Can We Model a Building in Web3? (Continued)"},"content":{"rendered":"<div class=\"body-text BodyCopy mb-40 style-1\">\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><em>REITs in Web3<\/em><\/h4>\n<p><em>Part 1: <a data-sk=\"tooltip_parent\" data-stringify-link=\"https:\/\/hedera.com\/blog\/how-would-we-build-a-reit-today-using-web3-technologies\" href=\"https:\/\/hedera.com\/blog\/how-would-we-build-a-reit-today-using-web3-technologies\" rel=\"noopener noreferrer\" target=\"_blank\">How Would We Build a REIT Today Using Web3 Technologies?<\/a><br \/>Part 2: <a data-sk=\"tooltip_parent\" data-stringify-link=\"https:\/\/hedera.com\/blog\/how-is-tokenization-changing-the-way-we-invest\" href=\"https:\/\/hedera.com\/blog\/how-is-tokenization-changing-the-way-we-invest\" rel=\"noopener noreferrer\" target=\"_blank\">How Is Tokenization Changing The Way We Invest?<\/a><br \/>Part 3: <a data-sk=\"tooltip_parent\" data-stringify-link=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3\" href=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3\" rel=\"noopener noreferrer\" target=\"_blank\">How Can We Model a Building in Web3?<\/a><strong><br \/>Part 4: <a data-sk=\"tooltip_parent\" data-stringify-link=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\" href=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\" rel=\"noopener noreferrer\" target=\"_blank\">How Can We Model a Building in Web3? (Continued)<\/a><\/strong><br \/>Part 5: <a data-sk=\"tooltip_parent\" data-stringify-link=\"https:\/\/hedera.com\/blog\/reimagining-reit-cashflows\" href=\"https:\/\/hedera.com\/blog\/reimagining-reit-cashflows\" rel=\"noopener noreferrer\" target=\"_blank\">Reimagining REIT Cashflows: Managing Revenue and Expenses in Web3<\/a><br \/>Part 6: <a data-sk=\"tooltip_parent\" data-stringify-link=\"https:\/\/hedera.com\/blog\/governance-jurisdiction-in-tokenized-real-estate\" href=\"https:\/\/hedera.com\/blog\/governance-jurisdiction-in-tokenized-real-estate\" rel=\"noopener noreferrer\" target=\"_blank\">Governance &amp; Jurisdiction in Tokenized Real Estate<\/a><\/em><em><br \/><\/em><em>Part 7: <\/em><a href=\"https:\/\/hedera.com\/blog\/slices-building-the-web3-real-estate-index-fund\"><em>Slices: Building The Web3 Real Estate Index Fund<\/em><\/a><\/p>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\">REITs in Web3: Part 4<\/h4>\n<p><em>Missed Part 1?<\/em> <em>Read up on it <\/em><a href=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3\"><strong><em>here<\/em><\/strong><\/a><em>, or catch the big-picture REIT architecture deep dive <\/em><a href=\"https:\/\/hedera.com\/blog\/how-would-we-build-a-reit-today-using-web3-technologies\"><strong><em>here<\/em><\/strong><\/a><em>.<\/em><\/p>\n<p dir=\"ltr\">A real property is an economic organism, and should be able to:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Raise capital from investors<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Earn rent<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Pay invoices<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Let users vote<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">That\u2019s why our accelerator treats each asset as a mini\u2011dApp consisting of several contracts. The NFT as discussed in our <a href=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3\"><strong>previous blog post<\/strong><\/a> is just the tip of the iceberg. Underneath the surface, yet equally as important to making the tokenized property function effectively, we have:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Fungible building token \u201cshares\u201d<\/strong> that legally represent fractional ownership<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">A <strong>Vault<\/strong> and <strong>Treasury<\/strong> to route cash (we\u2019ll deep\u2011dive those next time)<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">A <strong>Governance Governor<\/strong> so shareholders have a voice<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">In this article, we\u2019ll explore each of these aspects individually, including the factory contract that ties all these pieces together. By the end, you\u2019ll understand that a building isn\u2019t one NFT at all; you will learn that it\u2019s a pocket\u2011sized application that mints its own equity, keeps a tight cap\u2011table, and lets investors approve new air\u2011conditioning through a smartphone, as well as how the BuildingFactory stitches them together in one atomic deployment. <\/p>\n<p><\/p>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Why Every Building Needs a Factory<\/strong><\/h4>\n<p dir=\"ltr\">A property must be able to raise capital, earn rent, pay invoices, and let owners vote. <\/p>\n<p dir=\"ltr\">The `<a href=\"https:\/\/github.com\/hashgraph\/hedera-accelerator-defi-eip\/blob\/main\/contracts\/buildings\/BuildingFactory.sol\"><strong>BuildingFactory<\/strong><\/a>` launches all four contracts that make that possible:<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><strong>Step<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>Function<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>Returns<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">1<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">newBuilding()<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Beacon Proxy + Metadata NFT + On-Chain ID<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">2<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">newERC3643Token()<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">KYC-Gated Share Token<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">3<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">newTreasury()<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Treasury Proxy + First Yield Vault<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">4<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">newGovernance()<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Governor Hooked to the Treasury<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<figure class=\"blog-image mb-40\"><img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60061_BlogIllustrations_REIT11.jpg\" alt=\"\"\/><\/figure>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">After completion, the property is fully operational on\u2011chain: equity exists, a voting mechanism is in place, and future upgrades can be performed without migrating contract addresses.<\/p>\n<p dir=\"ltr\">As we\u2019ve already discussed the <strong>newBuilding()<\/strong> call last time, lets dive in where we left off:<\/p>\n<p dir=\"ltr\"><strong><\/strong><strong>Minting the Building Token (ERC-3643)<\/strong><\/p>\n<ol><\/ol>\n<\/div>\n<figure class=\"blog-image mb-40\"><img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60061_BlogIllustrations_REIT10.png\" alt=\"\"\/><\/figure>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">The building\u2019s equity is divided into small, identical units. Anyone who passes KYC can purchase the exact exposure they want &#8211; ten dollars or ten million dollars &#8211; and trade those units around the clock. You can own 13.42% of a building and trade it at 3AM.<\/p>\n<p dir=\"ltr\">Also, with fungible tokens, investors can calibrate risk &#8211; for example, allocating 2% in a Chicago apartment, 5% in a Lisbon hotel &#8211; rather than making an all\u2011or\u2011nothing bet on one deed.<\/p>\n<p><\/p>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Regulated tokens in a nutshell<\/strong><\/h4>\n<p dir=\"ltr\">As a reader of this series, you already know of the advantages of using a regulated token standard. Instead of a vanilla ERC\u201120, we plan to use ERC\u20113643: a permissioned, compliance-aware token standard born out of Tokeny\u2019s T\u2011REX framework and <a href=\"https:\/\/tokeny.com\/erc-3643-validated-as-the-de-facto-standard-for-enterprise-ready-tokenization\/\"><strong>an official Ethereum Improvement Proposal<\/strong>\u200b<\/a>.<\/p>\n<p dir=\"ltr\">Why? Because real\u2011estate securities must obey KYC\/AML, investor caps, and geo\u2011fences. ERC\u20113643 bakes those rules directly into every transfer, letting a token \u201crefuse\u201d to move when compliance checks fail &#8211; no central operator required. That\u2019s why &gt;$28 B in RWAs already use it.<\/p>\n<p dir=\"ltr\">In the <a href=\"https:\/\/github.com\/hashgraph\/hedera-accelerator-defi-eip\/blob\/main\/contracts\/buildings\/BuildingFactory.sol\"><strong>BuildingFactory contract<\/strong><\/a>, this is how this looks like in code:<\/p>\n<\/div>\n<div class=\"hedera-code-window\" style=\"background-image:url('https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg');padding:24px;border-radius:8px;margin:24px 0;\">\n<p>  <!-- Hidden image so WP All Import downloads this background image into Media Library --><br \/>\n  <img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg\" alt=\"code window background\" style=\"display:none;\" \/><\/p>\n<div class=\"code-window-header\">\n<div class=\"code-window-title\"><\/div>\n<div class=\"code-window-body\"><\/div>\n<\/p><\/div>\n<pre><code class=\"language-javascript\">function newERC3643Token(\n\taddress building,      \t\/\/ proxy created by newBuilding()\n\tstring  memory name,   \t\/\/ e.g. \"123-Main-St Shares\"\n\tstring  memory symbol, \t\/\/ e.g. \"BLDG-123\"\n\tuint8   decimals       \t\/\/ usually 6 or 18\n) external onlyBuildingOwner(building)\n{\n\t\/\/ 1. Ensure we haven't minted shares yet\n\trequire(\n    \t_getBuildingFactoryStorage()\n        \t.buildingDetails[building].erc3643Token == address(0),\n    \t\"Token already exists for this building\"\n\t);\n\n\t\/\/ 2. Call Tokeny TREX Gateway \u2192 returns a fully-compliant ERC-3643\n\taddress token = BuildingToken.createERC3643Token(\n    \t$.trexGateway,\n    \tbuilding,   \/\/ controller = the building proxy\n    \tname,\n    \tsymbol,\n    \tdecimals\n\t);\n\n\t\/\/ 3. Hand ownership to the sponsor (msg.sender)\n\tOwnableUpgradeable(token).transferOwnership(msg.sender);\n\n\t\/\/ 4. Store address so Treasury & Governor can reference it later\n\t$.buildingDetails[building].erc3643Token = token;\n\n\temit NewERC3643Token(token, building, msg.sender);\n}\n<\/code><\/pre>\n<\/div>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Deploying the Vault and Treasury<\/strong><\/h4>\n<p dir=\"ltr\">Once the equity token exists, we can integrate cash-flow plumbing in two back-to-back calls:<\/p>\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>newTreasury()<\/strong> \u2013 spins up a Treasury proxy and its first revenue Vault.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>_deployVault()<\/strong> (internal) \u2013 issues an ERC-4626\/7540 staking vault for the building\u2019s own share-token.<\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\">The Treasury holds reserves, pays invoices, and forward-routes rent to token-holders, while the Vault lets investors stake tokens and collect yield (e.g. rental or LP fees).<\/p>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Code excerpt:<\/strong><\/h4>\n<\/div>\n<div class=\"hedera-code-window\" style=\"background-image:url('https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg');padding:24px;border-radius:8px;margin:24px 0;\">\n<p>  <!-- Hidden image so WP All Import downloads this background image into Media Library --><br \/>\n  <img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg\" alt=\"code window background\" style=\"display:none;\" \/><\/p>\n<div class=\"code-window-header\">\n<div class=\"code-window-title\"><\/div>\n<div class=\"code-window-body\"><\/div>\n<\/p><\/div>\n<pre><code class=\"language-javascript\">address treasury = _deployTreasury(reserve, highWater, msg.sender);\naddress vault\t= _deployVault(token, msg.sender, treasury);\nITreasury(treasury).addVault(vault);\ndetails[building].treasury = treasury;\n<\/code><\/pre>\n<\/div>\n<figure class=\"blog-image mb-40\"><img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60061_BlogIllustrations_REIT8.png\" alt=\"\"\/><\/figure>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Voting with Building Governor<\/strong><\/h4>\n<p dir=\"ltr\">Most public \u2011market REIT investors have little to no operational influence: they receive quarterly statements and trust the management team to execute. In our on\u2011chain model, we take a different view: anyone who owns Building tokens as \u201cshares\u201d should be able to approve material actions &#8211; directly, transparently, and without intermediaries.<\/p>\n<p dir=\"ltr\">To provide that agency, the Building Factory deploys a dedicated governance contract every time it tokenises a property. Ownership of this contract is transferred to the DAO or multisig that initiated the deployment, and voting power is mapped to a holder\u2019s token balance.<\/p>\n<p dir=\"ltr\">But what does that mean in practice?<\/p>\n<p dir=\"ltr\">Below is a single, concrete example &#8211; updating the building\u2019s pet policy &#8211; showing how a text proposal moves from draft to execution.<\/p>\n<p dir=\"ltr\">Inline Solidity excerpts come from the BuildingGovernance contract you deploy with each property.<\/p>\n<p dir=\"ltr\"><strong>1. GovernorEvent: ProposalSucceeded(id);Proposal creation<\/strong><\/p>\n<\/p>\n<ol><\/ol>\n<p dir=\"ltr\">The community manager (or any holder) submits a text proposal:<\/p>\n<\/div>\n<div class=\"hedera-code-window\" style=\"background-image:url('https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg');padding:24px;border-radius:8px;margin:24px 0;\">\n<p>  <!-- Hidden image so WP All Import downloads this background image into Media Library --><br \/>\n  <img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg\" alt=\"code window background\" style=\"display:none;\" \/><\/p>\n<div class=\"code-window-header\">\n<div class=\"code-window-title\"><\/div>\n<div class=\"code-window-body\"><\/div>\n<\/p><\/div>\n<pre><code class=\"language-javascript\">uint256 id = buildingGovernor.createTextProposal(\n\tProposalLevel.Policy,                 \n\t\"Allow domestic pets up to 30 lbs in residential units\"\n);\n<\/code><\/pre>\n<\/div>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">The contract emits ProposalCreated(id, \u2026). <\/p>\n<p dir=\"ltr\">At this point, every building token holder is eligible to vote.<\/p>\n<p dir=\"ltr\">\n<p dir=\"ltr\">\n<p dir=\"ltr\"><strong>2. Snapshot and voting period<\/strong><\/p>\n<ol><\/ol>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">When the proposal is created, voting power is snap\u2011shotted at that block: the governor reads balances via IVotes.getPastVotes().<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">For the next 48 hours, holders sign <strong>For<\/strong>, <strong>Against<\/strong>, or <strong>Abstain<\/strong> transactions.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\">A front\u2011end can query buildingGovernor.state(id) and buildingGovernor.proposalVotes(id) to display live tallies and time remaining.<\/p>\n<\/li>\n<\/ul>\n<p><strong>3.\u00a0<\/strong><strong>Proposal succeeds<\/strong><\/p>\n<ol><\/ol>\n<p dir=\"ltr\">Assume the final counts are <strong>26% For<\/strong>, <strong>4% Against<\/strong>, with quorum (1% of supply) satisfied:<\/p>\n<\/div>\n<div class=\"hedera-code-window\" style=\"background-image:url('https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg');padding:24px;border-radius:8px;margin:24px 0;\">\n<p>  <!-- Hidden image so WP All Import downloads this background image into Media Library --><br \/>\n  <img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg\" alt=\"code window background\" style=\"display:none;\" \/><\/p>\n<div class=\"code-window-header\">\n<div class=\"code-window-title\"><\/div>\n<div class=\"code-window-body\"><\/div>\n<\/p><\/div>\n<pre><code class=\"language-javascript\">GovernorEvent: ProposalSucceeded(id);\n<\/code><\/pre>\n<\/div>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">No other action occurs until someone triggers execution.<\/p>\n<p dir=\"ltr\"><strong>4. Execution<\/strong><\/p>\n<ol><\/ol>\n<p dir=\"ltr\">Because this is a \u201ctext\u2011only\u201d proposal &#8211; no treasury call is attached &#8211; execution simply records the result immutably:<\/p>\n<\/div>\n<div class=\"hedera-code-window\" style=\"background-image:url('https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg');padding:24px;border-radius:8px;margin:24px 0;\">\n<p>  <!-- Hidden image so WP All Import downloads this background image into Media Library --><br \/>\n  <img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg\" alt=\"code window background\" style=\"display:none;\" \/><\/p>\n<div class=\"code-window-header\">\n<div class=\"code-window-title\"><\/div>\n<div class=\"code-window-body\"><\/div>\n<\/p><\/div>\n<pre><code class=\"language-javascript\">buildingGovernor.executeTextProposal(id);\n<\/code><\/pre>\n<\/div>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">Internally, the governor calls its generic <strong>execute()<\/strong>, and the chain now holds an immutable record (ProposalExecuted) that the policy change was approved.<\/p>\n<p dir=\"ltr\">Therefore, we have:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Direct agency<\/strong> \u2013 Share\u2011holders decided on a real expenditure, not just an advisory poll.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Clear accountability<\/strong> \u2013 The approved policy, vote breakdown, and execution hash are permanently stored on chain.<\/p>\n<\/li>\n<\/ul>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong><\/strong><\/h4>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Try it out for yourself:<\/strong><\/h4>\n<p dir=\"ltr\">This flow can also be seen here in the example scripts of the smart contracts repository under <a href=\"https:\/\/github.com\/hashgraph\/hedera-accelerator-defi-eip\/blob\/main\/examples\/buildings\/demo\/step_1.ts\">examples\/buildings\/demo<\/a>.<\/p>\n<p dir=\"ltr\">To run it, clone the repo, cd examples\/buildings\/demo, and run<strong> ts-node step_1.ts<\/strong>:<\/p>\n<\/div>\n<div class=\"hedera-code-window\" style=\"background-image:url('https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg');padding:24px;border-radius:8px;margin:24px 0;\">\n<p>  <!-- Hidden image so WP All Import downloads this background image into Media Library --><br \/>\n  <img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/CodeSnippetBackground-scaled.jpg\" alt=\"code window background\" style=\"display:none;\" \/><\/p>\n<div class=\"code-window-header\">\n<div class=\"code-window-title\"><\/div>\n<div class=\"code-window-body\"><\/div>\n<\/p><\/div>\n<pre><code class=\"language-javascript\">git clone https:\/\/github.com\/hashgraph\/hedera-accelerator-defi-eip\ncd examples\/buildings\/demo\nnpm install\nts-node step_1.ts\n<\/code><\/pre>\n<\/div>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">Expected output:<\/p>\n<\/div>\n<figure class=\"blog-image mb-40\"><img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/unnamed_2025-05-01-114045_kfes.png\" alt=\"\"\/><\/figure>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p>The script walks through the <em>entire<\/em> factory flow:<\/p>\n<\/div>\n<figure class=\"blog-image mb-40\"><img decoding=\"async\" src=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60061_BlogIllustrations_REIT9.png\" alt=\"\"\/><\/figure>\n<div class=\"body-text BodyCopy mb-40 style-1\">\n<p dir=\"ltr\">You\u2019ll mint the NFT, shares, Treasury, Governor, and end with delegated voting power ready for your first proposal.<\/p>\n<p><\/p>\n<h4 class=\"color-ultraviolet\" dir=\"ltr\"><strong>Conclusion<\/strong><\/h4>\n<p dir=\"ltr\">Our architecture turns every building into a coordinated set of smart contracts:<\/p>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>ERC-721 + metadata URI <\/strong>\u2192  the digital title: pins location, floor-plans, docs in IPFS; holder address is the on-chain identity.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>ERC-3643 building token<\/strong>\u2002\u2192 regulator-friendly, KYC-gated equity that still plugs into DeFi.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Treasury + Vault<\/strong>\u2002\u2192 routes rent, maintains reserves, and lets holders stake shares for yield.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Building Governor<\/strong>\u2002\u2192 maps token balances to on-chain voting, so investors approve policy changes and real-world spend.<\/p>\n<\/li>\n<li dir=\"ltr\">\n<p dir=\"ltr\"><strong>Beacon pattern<\/strong>\u2002\u2192 single upgrade switch keeps every contract on the latest logic.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">Together, they deliver a professionally governed, globally tradable real-estate instrument with transparency no traditional REIT can match.<\/p>\n<p dir=\"ltr\">Next in the series we\u2019ll dive deep into <em>cash-flow execution<\/em> &#8211; how the Treasury pays bills, how the Vault distributes yield, and how payment proposals flow through governance.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we\u2019ll explore tokenized buildings in detail, including the factory contract that ties everything together. By the end, you\u2019ll understand that a building isn\u2019t one NFT at all; you will learn that it\u2019s a pocket\u2011sized application that mints its own equity, keeps a tight cap\u2011table, and lets investors approve new air\u2011conditioning through a smartphone, as well as how the BuildingFactory stitches them together in one atomic deployment.<\/p>\n","protected":false},"author":10,"featured_media":16679,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[1],"tags":[],"ppma_author":[43],"class_list":["post-15594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Can We Model a Building in Web3? (Continued) | Hedera<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Can We Model a Building in Web3? (Continued) | Hedera\" \/>\n<meta property=\"og:description\" content=\"In this article, we\u2019ll explore tokenized buildings in detail, including the factory contract that ties everything together. By the end, you\u2019ll understand that a building isn\u2019t one NFT at all; you will learn that it\u2019s a pocket\u2011sized application that mints its own equity, keeps a tight cap\u2011table, and lets investors approve new air\u2011conditioning through a smartphone, as well as how the BuildingFactory stitches them together in one atomic deployment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\" \/>\n<meta property=\"og:site_name\" content=\"Hedera\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-02T11:18:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-08T18:07:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hedera Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\"},\"author\":{\"name\":\"Hedera Team\",\"@id\":\"https:\/\/hedera.com\/#\/schema\/person\/2dc6146f9f20a44d3de58c834d52e9f4\"},\"headline\":\"How Can We Model a Building in Web3? (Continued)\",\"datePublished\":\"2025-05-02T11:18:00+00:00\",\"dateModified\":\"2025-12-08T18:07:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\"},\"wordCount\":1173,\"publisher\":{\"@id\":\"https:\/\/hedera.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\",\"url\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\",\"name\":\"How Can We Model a Building in Web3? (Continued) | Hedera\",\"isPartOf\":{\"@id\":\"https:\/\/hedera.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png\",\"datePublished\":\"2025-05-02T11:18:00+00:00\",\"dateModified\":\"2025-12-08T18:07:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage\",\"url\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png\",\"contentUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hedera.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Can We Model a Building in Web3? (Continued)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hedera.com\/#website\",\"url\":\"https:\/\/hedera.com\/\",\"name\":\"Hedera\",\"description\":\"Hello future\",\"publisher\":{\"@id\":\"https:\/\/hedera.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hedera.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/hedera.com\/#organization\",\"name\":\"Hedera\",\"url\":\"https:\/\/hedera.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hedera.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png\",\"contentUrl\":\"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png\",\"width\":500,\"height\":375,\"caption\":\"Hedera\"},\"image\":{\"@id\":\"https:\/\/hedera.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Can We Model a Building in Web3? (Continued) | Hedera","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/","og_locale":"en_US","og_type":"article","og_title":"How Can We Model a Building in Web3? (Continued) | Hedera","og_description":"In this article, we\u2019ll explore tokenized buildings in detail, including the factory contract that ties everything together. By the end, you\u2019ll understand that a building isn\u2019t one NFT at all; you will learn that it\u2019s a pocket\u2011sized application that mints its own equity, keeps a tight cap\u2011table, and lets investors approve new air\u2011conditioning through a smartphone, as well as how the BuildingFactory stitches them together in one atomic deployment.","og_url":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/","og_site_name":"Hedera","article_published_time":"2025-05-02T11:18:00+00:00","article_modified_time":"2025-12-08T18:07:16+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png","type":"image\/png"}],"author":"Hedera Team","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#article","isPartOf":{"@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/"},"author":{"name":"Hedera Team","@id":"https:\/\/hedera.com\/#\/schema\/person\/2dc6146f9f20a44d3de58c834d52e9f4"},"headline":"How Can We Model a Building in Web3? (Continued)","datePublished":"2025-05-02T11:18:00+00:00","dateModified":"2025-12-08T18:07:16+00:00","mainEntityOfPage":{"@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/"},"wordCount":1173,"publisher":{"@id":"https:\/\/hedera.com\/#organization"},"image":{"@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage"},"thumbnailUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/","url":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/","name":"How Can We Model a Building in Web3? (Continued) | Hedera","isPartOf":{"@id":"https:\/\/hedera.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage"},"image":{"@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage"},"thumbnailUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png","datePublished":"2025-05-02T11:18:00+00:00","dateModified":"2025-12-08T18:07:16+00:00","breadcrumb":{"@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#primaryimage","url":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png","contentUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/hedera.com\/blog\/how-can-we-model-a-building-in-web3-continued\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hedera.com\/"},{"@type":"ListItem","position":2,"name":"How Can We Model a Building in Web3? (Continued)"}]},{"@type":"WebSite","@id":"https:\/\/hedera.com\/#website","url":"https:\/\/hedera.com\/","name":"Hedera","description":"Hello future","publisher":{"@id":"https:\/\/hedera.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hedera.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/hedera.com\/#organization","name":"Hedera","url":"https:\/\/hedera.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hedera.com\/#\/schema\/logo\/image\/","url":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png","contentUrl":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/09\/hedera_logo.png","width":500,"height":375,"caption":"Hedera"},"image":{"@id":"https:\/\/hedera.com\/#\/schema\/logo\/image\/"}}]}},"featured_image_src":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1-600x400.png","featured_image_src_square":"https:\/\/hedera.com\/wp-content\/uploads\/2025\/12\/HH60094_HowCanWeModelABuildingInWeb3V1-600x600.png","author_info":{"display_name":"Hedera Team","author_link":"https:\/\/hedera.com\/blog\/author\/hedera-team\/"},"authors":[{"term_id":43,"user_id":10,"is_guest":0,"slug":"hedera-team","display_name":"Hedera Team","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/7ed01931dc9498365746508c4ca49ed0507ef65e04e0b82ffe88c50ef9242b1d?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":""}],"_links":{"self":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/posts\/15594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/comments?post=15594"}],"version-history":[{"count":0,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/posts\/15594\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/media\/16679"}],"wp:attachment":[{"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/media?parent=15594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/categories?post=15594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/tags?post=15594"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/hedera.com\/wp-json\/wp\/v2\/ppma_author?post=15594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}