
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
avatar-everywhere-cli
Advanced tools
Portable Sandbox Identity Toolkit - NFT verification and VRM avatar conversion
Milestone 1: NFT Ownership Verification + Avatar Export to VRM
Convert your Sandbox avatars to VRM format for use across metaverse platforms like Unity, VRChat, and more. Includes blockchain-based ownership verification to ensure you own the avatar NFT before conversion.
.glb
and .vox
avatar files to VRM 1.0 formatComponent | Version | Status |
---|---|---|
Python | 3.11+ | Required |
Node.js | 16+ | Required |
UniVRM | 0.121+ | For Unity testing |
Unity | 2022 LTS | For VRM validation |
# Install the CLI globally (recommended)
pip install avatar-everywhere-cli
# Set up global command access
./setup_global.sh
# After install, use the global command:
avatar-everywhere --help
avatar-everywhere convert avatar.glb --output my_avatar.vrm
# Install with development dependencies
pip install avatar-everywhere-cli[dev]
# Install with performance monitoring
pip install avatar-everywhere-cli[performance]
Note: After installation, the avatar-everywhere
command is available globally. If you get "command not found", run ./setup_global.sh
or add ~/.local/bin
to your PATH manually.
# Install the Node.js components
npm install avatar-everywhere-cli
# Install globally for CLI access
npm install -g avatar-everywhere-cli
# Clone repository
git clone https://github.com/Supercoolkayy/avatar-everywhere-cli
cd avatar-everywhere-cli
# Install Python dependencies
pip install -r requirements.txt
# Install Node.js dependencies
npm install
# Install the CLI globally from source
pip install .
# After install, use the global command:
avatar-everywhere --help
avatar-everywhere convert avatar.glb --output my_avatar.vrm
# Verify installation
avatar-everywhere list-requirements
After installation, you may need to:
Set up WalletConnect (for NFT verification):
# Create .env file with your WalletConnect Project ID
echo "WALLETCONNECT_PROJECT_ID=your_project_id_here" > .env
Verify installation:
# Test the CLI
avatar-everywhere --help
# or
python main.py --help
After installation (via PyPI or source), you can use the CLI globally:
# Using the installed global command
avatar-everywhere --help
avatar-everywhere convert avatar.glb --output my_avatar.vrm
# Or using the Python module (advanced/dev only)
python main.py --help
Verify that you own a Sandbox avatar NFT before converting:
# Verify ownership with wallet address
avatar-everywhere verify \
--contract 0x1234567890abcdef1234567890abcdef12345678 \
--token 123 \
--wallet 0xabcdef1234567890abcdef1234567890abcdef12
# Verify ownership with WalletConnect v2
avatar-everywhere verify-wc \
--contract 0x1234567890abcdef1234567890abcdef12345678 \
--token 123
# Verify ownership (will prompt for WalletConnect)
avatar-everywhere verify --contract 0x... --token 123
Parameters:
--contract, -c
: NFT contract address on Polygon--token, -t
: NFT token ID--wallet, -w
: Wallet address (optional, triggers WalletConnect if not provided)--auto-connect
: Automatically connect wallet (WalletConnect mode)Convert Sandbox avatar files to VRM format:
# Convert with ownership verification
avatar-everywhere convert avatar.glb \
--output my_avatar.vrm \
--contract 0x1234567890abcdef1234567890abcdef12345678 \
--token 123
# Convert without verification (testing)
avatar-everywhere convert avatar.glb --skip-verify
# Convert VOX file
avatar-everywhere convert avatar.vox --output avatar.vrm
Parameters:
input_file
: Path to .glb
or .vox
avatar file--output, -o
: Output VRM file path (optional, defaults to input name with .vrm extension)--contract, -c
: NFT contract address for verification--token, -t
: NFT token ID for verification--skip-verify
: Skip NFT ownership verificationGet information about avatar files:
# Analyze GLB file
avatar-everywhere info avatar.glb
# Analyze VOX file
avatar-everywhere info avatar.vox
Run automated performance benchmarks:
# Run comprehensive performance tests
python benchmark_performance.py
# Test specific file conversion
avatar-everywhere convert test_assets/large_avatar.glb --output output/large_test.vrm
# Monitor memory usage
python -m memory_profiler avatar-everywhere convert test_assets/medium_avatar.glb
Test VRM files in Unity with UniVRM:
# Follow the Unity integration guide
# See unity_integration_test.md for detailed instructions
# 1. Install UniVRM in Unity
# 2. Import VRM files from output/ directory
# 3. Validate import success and runtime functionality
Test NFT verification on Polygon mainnet:
# Test with real Sandbox NFTs
python main.py verify \
--contract 0x5cc5e64ab764a0f1e97f23984e20fd4528826c79 \
--token 12345 \
--wallet 0x1234567890123456789012345678901234567890
# Test network resilience
python main.py verify \
--contract 0x5cc5e64ab764a0f1e97f23984e20fd4528826c79 \
--token 12345 \
--rpc-url https://rpc-mainnet.maticvigil.com
# 1. Verify you own the NFT
avatar-everywhere verify \
--contract 0xa342f5d851e866e18ff98f351f2c6637f4478db5 \
--token 12345 \
--wallet 0x742d35cc6634c0532925a3b8d0e97b4b0d2d4aad
# 2. Convert avatar with verification
avatar-everywhere convert sandbox_avatar.glb \
--output my_metaverse_avatar.vrm \
--contract 0xa342f5d851e866e18ff98f351f2c6637f4478db5 \
--token 12345
# 3. Check the output file
avatar-everywhere info my_metaverse_avatar.vrm
# Process multiple avatars
for file in assets/*.glb; do
avatar-everywhere convert "$file" --skip-verify
done
avatar-everywhere-cli/
├── main.py # Main entry point
├── cli.py # CLI commands and interface
├── converters/
│ └── sandbox_to_vrm.py # GLB/VOX to VRM converter
├── wallet/
│ └── verify_owner.js # NFT ownership verification
├── vox_parser/
│ └── extract_vox.py # VOX file parser
├── test_assets/
│ ├── sample_avatar.glb # Sample test files
│ ├── sample_voxel.vox # Sample test files
│ └── README.md # Test assets documentation
├── package.json # Node.js dependencies
├── requirements.txt # Python dependencies
├── benchmark_performance.py # Performance testing script
├── unity_integration_test.md # Unity testing guide
├── nft_verification_test.md # NFT testing guide
├── performance_testing.md # Performance testing guide
├── walletconnect_integration.md # WalletConnect guide
├── VALIDATION_SUMMARY.md # Validation summary
└── README.md # This file
To build packages for distribution:
# Build both Python and npm packages
python build_distribution.py
# Build Python package only
python -m build
# Build npm package only
npm run build
# Publish to PyPI
python -m twine upload dist/*
# Publish to npm
npm publish
# Test Python package locally
pip install dist/*.whl
avatar-everywhere --help
# Test npm package locally
npm pack
npm install avatar-everywhere-cli-1.0.0.tgz
The project includes comprehensive testing and validation capabilities:
benchmark_performance.py
for automated performance testingunity_integration_test.md
for VRM testing in Unitynft_verification_test.md
for real network testingperformance_testing.md
for large file handlingwalletconnect_integration.md
for wallet integrationThe generated VRM files include:
"Node.js not found"
# Install Node.js (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# Install Node.js (macOS)
brew install node
# Install Node.js (Windows)
# Download from https://nodejs.org
"Contract call failed"
"VRM file doesn't load in Unity"
Add --verbose
to any command for detailed output:
python main.py convert avatar.glb --verbose
# Test with sample files
avatar-everywhere convert test_assets/avatar01.glb --skip-verify
# Test NFT verification (requires valid contract/token)
avatar-everywhere verify --contract 0x... --token 123
# Format code
black .
isort .
# Type checking
mypy .
MIT License - See LICENSE file for details
Avatar Everywhere - Bringing your digital identity everywhere you go.
FAQs
Portable Sandbox Identity Toolkit - NFT verification and VRM avatar conversion
We found that avatar-everywhere-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.