Contoh sederhana Decentralized Application (DApp) yang terintegrasi dengan Wind Wallet.
Project ini dibuat sebagai boilerplate bagi pengembang pemula maupun profesional yang ingin membangun DApp di ekosistem Vexanium menggunakan WharfKit.
- 🔑 Login via Wind Wallet menggunakan QR/VSR (VEX Signing Request).
- 🌐 Koneksi Peer-to-Peer (WebRTC) dengan PeerJS untuk komunikasi aman.
- 📝 Transaksi & Signing Request ke blockchain Vexanium.
- 📦 Contoh implementasi minimal agar mudah dipahami dan dikembangkan.
- Vue 3 + Vite
- WharfKit (
@wharfkit/antelope,@wharfkit/signing-request,@wharfkit/abicache) - PeerJS
- PrimeVue + Tailwind CSS
# Clone repo
git clone https://github.com/windvex/wind-example-dapp.git
cd wind-example-dapp
# Install dependencies
npm install
# Jalankan dev server
npm run devBuka di browser:
👉 http://localhost:5173
- Pastikan Anda sudah memiliki Wind Wallet.
Jika belum, buka: https://wind-wallet.web.app. - Jalankan DApp dengan
npm run dev. - Klik Login dengan Wind Wallet, lalu scan QR atau buka link VSR.
- Setelah login, Anda dapat mencoba request tanda tangan / transaksi.
wind-example-dapp/
├─ src/
│ ├─ components/ # Komponen Vue (WalletSelector, dll.)
│ ├─ js/ # Modul JS (wallet.js, nodes.js, dll.)
│ ├─ pages/ # Halaman utama (Home.vue, Transfer.vue, Vote.vue)
│ └─ App.vue # Root aplikasi
├─ package.json
└─ README.md
import Wallet from '@/js/wallet.js'
async function login() {
try {
const session = await Wallet.login()
console.log('Login berhasil:', session.actor.toString())
} catch (err) {
console.error('Login gagal:', err)
}
}import Wallet from '@/js/wallet.js'
import { client } from '@/js/nodes.js'
async function voteBP(bpName) {
if (!Wallet.isConnected()) {
throw new Error('Harus login terlebih dahulu')
}
const actor = Wallet.getActor()
const permission = Wallet.getPermission()
const action = {
account: 'vexcore',
name: 'voteproducer',
authorization: [{
actor,
permission,
}],
data: {
voter: actor,
proxy: '',
producers: [bpName],
},
}
try {
const trx = await Wallet.transact({ actions: [action] })
console.log('Vote berhasil, trx id:', trx.transaction_id)
} catch (err) {
console.error('Gagal vote BP:', err)
}
}Kami sangat terbuka untuk kontribusi dari komunitas!
Langkah berkontribusi:
- Fork repo ini.
- Buat branch baru:
git checkout -b fitur-anda
- Lakukan perubahan, lalu commit:
git commit -m "Menambahkan fitur X" - Push branch ke repo Anda dan buat Pull Request.
- 💬 Telegram: t.me/vexaniumid
⭐ Jangan lupa kasih bintang repo ini jika bermanfaat!
Kontribusi Anda akan membantu mendukung ekosistem Vexanium dan Wind Wallet.