| artifacts | ||
| cache | ||
| contracts | ||
| contracts-v5@0be5dce46b | ||
| js | ||
| metadata-to-upload | ||
| node_modules | ||
| oracle-api@b1f1eef534 | ||
| reference | ||
| scripts | ||
| .env | ||
| .gitmodules | ||
| ENV_TEMPLATE.txt | ||
| favicon.svg | ||
| hardhat.config.js | ||
| index.html | ||
| LICENSE | ||
| mainnet-controller-addresses.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| serve.sh | ||
SKGentisStandalone - RWA Vault Launchpad
A standalone Real-World Asset (RWA) NFT vault launchpad with the SKGentis Obsidian-Gold theme. This project provides a beautiful web interface for interacting with RwaVaultV4 smart contracts on Ethereum mainnet.
Overview
SKGentisStandalone enables tokenization of real-world assets through NFT-backed ETH vaults. Each minted NFT represents an RWA with a target funding value in USD. Users can deposit ETH to fund specific vaults, with progress tracked in real-time using Chainlink price feeds.
Key Features
- Wallet Integration: Connect MetaMask or any Web3 wallet
- Multi-Vault Support: Load and interact with any tokenId
- Real-Time Progress: Funding progress calculated via Chainlink ETH/USD oracle
- IPFS Metadata: NFT images and metadata served from IPFS
- Owner Controls: Withdraw functionality for contract owner
- SKGentis Theme: Obsidian-Gold glassmorphism aesthetic
Quick Start
- Open
index.htmlin a browser - Connect your Web3 wallet (MetaMask recommended)
- Switch to Ethereum Mainnet
- Enter a Token ID and click "Load"
- Deposit ETH or view vault progress
Smart Contract
RwaVaultV4
- Address:
0x32461873e1fA13170382f755A5b86F1409249d49 - Network: Ethereum Mainnet
- Token: RwaVaultV4 (RWAV4)
Key Functions
| Function | Description |
|---|---|
deposit(tokenId) |
Deposit ETH to fund a specific vault |
withdraw(tokenId, amount) |
Owner withdraws ETH from vault |
getFundingProgress(tokenId) |
Returns progress in permille (0-1000) |
ethBalance(tokenId) |
ETH deposited in vault (wei) |
assetValueUSD(tokenId) |
Target value in USD cents |
mint(to, valueUSD, uri) |
Owner mints new RWA NFT |
Contract Dependencies
- OpenZeppelin: ERC721URIStorage, Ownable, ReentrancyGuard, Pausable
- Chainlink: AggregatorV3Interface (ETH/USD price feed)
Project Structure
SKGentisStandalone/
├── index.html # Standalone launchpad UI
├── README.md # This file
├── LICENSE # AGPL-3.0
├── reference/ # Reference materials
│ ├── texts.md
│ ├── ui-html.html
│ └── etherscan-addresses.md
├── contracts/ # Solidity source
│ └── RwaVaultV4.sol
└── contracts-v5/ # Contracts repo submodule
├── contracts/ # RwaVaultV5 contracts
├── automation/ # Deployment automation scripts
├── analytics/ # Monitoring & analytics tools
└── subgraph/ # The Graph subgraph
Note: Deployment and monitoring tools (automation, analytics, subgraph) are located in the contracts-v5/ submodule. See the contracts repo README for details.
Theme: Obsidian-Gold
The UI follows the SKGentis design language:
- Background: True Black (#000000) with gold aurora
- Cards: Obsidian (#0F0F13) with glassmorphism
- Accent: Metallic Gold (#D4AF37)
- Typography: Outfit (headings), Inter (body)
Deploying Your Own Contract
If you want to deploy your own RwaVaultV4 instance:
- Copy
contracts/RwaVaultV4.sol - Deploy via Hardhat/Foundry with Chainlink price feed address:
- Mainnet:
0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 - Sepolia:
0x694AA1769357215DE4FAC081bf1f309aDC325306
- Mainnet:
- Update
CONTRACT_ADDRESSinindex.html
Using Deployment Automation
For RwaVaultV5 contracts, use the automation tools in the contracts-v5/ submodule:
cd contracts-v5/automation
pip install -r requirements.txt
python main.py deploy-all --address 0x... --start-block 12345678
This will automatically:
- Verify contract on Etherscan
- Deploy The Graph subgraph
- Set up Tenderly monitoring
- Provide Gelato setup instructions
See contracts-v5/automation/README.md for full documentation.
Links
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
Copyright (C) 2025 S&K Holding QT (Quantum Technologies)
SK = staycuriousANDkeepsmilin 🐧