# Technical Overview

**Backend Infrastructure**

1. Blockchain Integration: Ultimate Digits uses a combination of Ethereum smart contracts to create and manage the link between mobile numbers and crypto wallet addresses. The use of Ethereum ensures decentralization and immutability.
2. Database: IPFS is used to store metadata about users. On BNB Chain, we’re using Greenfield.&#x20;
3. API Server: A RESTful API server handles requests from the front end. Built using Node.js and Express.js, this server interacts with the Ethereum blockchain and IPFS.

&#x20;**Smart Contracts**

4. Registration Contract: Users interact with this contract to link their mobile number to a crypto address. The actual mobile numbers aren’t stored on-chain, only a hashed version for privacy reasons. [Read our hashing mechanism.](https://docs.google.com/document/d/1L7yeGCIOwUUoxLRMBPLzjrGcHg7ETSoXb4hNtWriAQM/edit?usp=sharing)&#x20;
5. NFT Contract: This contract handles the creation and management of virtual Web3 mobile numbers as NFTs. ERC-721 standard used adopted here. If a user links a real-world mobile number, an NFT is still created and deposited into their wallet.
6. Lookup Contract: This performs a lookup of the last owner of the above-mentioned NFT via {getOwnersForToken}. This NFT holder’s wallet address is retrieved for further use.
7. Ultimate Owners: We track NFT ownership changes via {NewOwner} and {Transfer} events. We use additional event logging, time-lock, and incentives to handle events like user’s mobile numbers being changed, or mobile number NFTs being transferred. [Read more here](https://docs.google.com/document/d/1HljYcR1Wk5Xjlr7lCBzEdF58HFF-ShwTRQOlwQbsdy4/edit?usp=sharing).&#x20;

&#x20;**Frontend**

8. Web App: React.js for frontend interface. It will integrate with Web3.js or ethers.js to communicate with the Ethereum blockchain. We’ll also develop Flutter-based mobile apps.
9. MetaMask Snaps Plugin: This will be developed using the Snaps beta SDK provided by MetaMask. It'll be a micro-app that can be plugged into MetaMask.&#x20;

**Security**

10. Hash Functions
11. Smart Contract Audits
12. Oracles: For external data such as real-time token prices, decentralized oracles will be used to provide reliable data feeds.
13. Interoperability: Ultimate Digits is a fully open system where mobile numbers can be set to any kind of record, with blockchain addresses being the most common use case.

**DAO Governance:** Eventually, we’ll turn the protocol governance over to a DAO to ensure that it remains in the hands of its users.
