A Next.js application for managing and tracking the OTORI Vision Token (OVT), a transparent and efficient on-chain VC fund.
- Real-time NAV (Net Asset Value) tracking and visualization
- Bitcoin wallet integration for buying and selling OVT
- Portfolio performance monitoring
- Transparent fund management
- Node.js 16.x or later
- npm 7.x or later
- A Bitcoin wallet (e.g., Xverse, Unisat, or Leather)
- Rust and Cargo
- Linux environment (tested on Manjaro)
- Access to Bitcoin network (regtest for development)
- Arch Network CLI tools
# For Manjaro/Arch Linux
sudo pacman -S base-devel clang llvm rocksdb snappy zlib bzip2
# Install Bitcoin Core
sudo pacman -S bitcoin
# Create Bitcoin configuration
mkdir -p ~/.bitcoin
echo "regtest=1
server=1
rpcuser=bitcoin
rpcpassword=bitcoinpass
rpcallowip=0.0.0.0/0
rpcbind=0.0.0.0" > ~/.bitcoin/bitcoin.conf
# Start Bitcoin daemon in regtest mode
bitcoind -regtest -daemon
# Create directory for Arch tools
mkdir -p ~/Coding/arch-tools
cd ~/Coding/arch-tools
# Clone and build Electrs
git clone https://github.com/Arch-Network/electrs.git
cd electrs
cargo build --release
# Create project directory
mkdir -p ~/Coding/OTORI-Vision-Testnet
cd ~/Coding/OTORI-Vision-Testnet
# Initialize validator directory
mkdir -p .arch-validator
- Start Bitcoin Core (if not already running):
bitcoind -regtest -daemon -rpcuser=bitcoin -rpcpassword=bitcoinpass -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -server=1
- Run Electrs (in a separate terminal):
cd ~/Coding/arch-tools/electrs
cargo run --release --bin electrs -- -vvvv --daemon-dir ~/.bitcoin --network regtest --cookie bitcoin:bitcoinpass --main-loop-delay 0
- Start Arch validator (in another terminal):
cd ~/Coding/OTORI-Vision-Testnet
arch-cli validator-start
- Start the frontend development server:
npm run dev
- Configure mock environment:
# Copy the example env file
cp .env.local.example .env.local
# Update with mock values for development
NEXT_PUBLIC_PROGRAM_ID=mock_program_id
NEXT_PUBLIC_TREASURY_ADDRESS=mock_treasury_address
NEXT_PUBLIC_ARCH_ENDPOINT=http://localhost:8000
NEXT_PUBLIC_MOCK_MODE=true
- Run the development server:
npm run dev
Requirements:
- Running Bitcoin Core in regtest mode
- Running Electrs indexer
- Running Arch validator
- Hardware wallet for treasury management (production only)
ovt-fund/ # Next.js frontend application
├── components/ # React components
├── pages/ # Next.js pages
├── public/ # Static assets
├── src/
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions and clients
│ └── utils/ # Helper functions
├── styles/ # CSS styles
└── types/ # TypeScript type definitions
ovt-program/ # Rust program for Arch Network
├── src/
│ ├── lib.rs # Main program logic
│ ├── client.rs # Arch Network program client
│ ├── runes_client.rs # Bitcoin Runes protocol client
│ └── error.rs # Error definitions
└── tests/ # Integration tests
docs/ # Project documentation
└── BACKLOG.md # Development backlog
- Stop Bitcoin Core:
bitcoin-cli -regtest stop
- Stop Electrs and Arch validator:
- Use Ctrl+C in their respective terminals
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.