Skip to content

Repository files navigation

ChainIntegrate Membership

NFT membership soulbound (LSP8) con tier Bronze/Silver/Gold aggiornabile. Pensata per essere letta da qualunque altro progetto ChainIntegrate (MyCarBook, Birra20Venti, ecc.) per sbloccare funzionalità in base al livello posseduto — sostituisce liste di indirizzi gestite a mano con un badge reale, visibile nella Collectibles della UP del membro.

Struttura

chainintegrate-membership/
├── contracts/
│   └── ChainIntegrateMembership.sol
├── scripts/
│   └── deploy.js
├── backend/
│   ├── server.js      — proxy Pinata (mai JWT nel browser)
│   ├── package.json
│   └── .env.example
├── frontend/
│   ├── admin.html      — mint + aggiornamento tier (solo owner contratto)
│   └── config.js        — indirizzi contratto per rete + ABI
├── hardhat.config.js
└── .env.example

Concetti chiave

  • Un token per indirizzo, soulbound (non trasferibile) — legato alla persona che ha acquistato il livello, diverso da MyCarBook dove il trasferimento in rivendita è invece voluto.
  • Tier aggiornabile sullo stesso token (Bronze→Silver→Gold), non serve mintare un secondo NFT per l'upgrade — cambia anche l'icona mostrata.
  • Mint e upgrade solo owner del contratto (ChainIntegrate) — per ora gestione manuale (chi paga cosa via LYX si decide fuori dal contratto), il contratto registra solo il risultato.
  • tierOf(address): funzione pensata per essere chiamata da ALTRI contratti/frontend ChainIntegrate per sapere il livello di un membro senza risolvere IPFS — un'unica read on-chain.

TODO prima del deploy

  1. Confermare gli indirizzi owner in scripts/deploy.js (COLLECTION_OWNER_BY_CHAIN) — riusati per ora quelli di MyCarBook, assumendo la stessa UP ChainIntegrate; verificare che sia corretto.
  2. Decidere il sottodominio (proposto: membership.chainintegrate.it) e aggiornare ALLOWED_ORIGIN in backend/.env.example di conseguenza.
  3. npx hardhat compile — non verificato in sandbox (nessun accesso a binaries.soliditylang.org), solo revisione manuale finora.
  4. Deploy su testnet 4201 prima, verifica mint+upgrade, poi mainnet 42.
  5. Collegare il JWT Pinata (stesso account già in uso per MyCarBook, o uno dedicato — a scelta).

Non ancora implementato (di proposito)

  • Mint a pagamento in LYX con prezzo per fascia — oggi mintMembership è onlyOwner, nessuna logica di pagamento. Da aggiungere quando serve davvero il flusso self-service.
  • Nessuna integrazione ancora con MyCarBook o altri progetti per leggere tierOf() — prossimo passo naturale una volta deployato.

About

ChainIntegrate Membership — soulbound NFT membership (LSP8) for the ChainIntegrate ecosystem, with upgradeable Bronze/Silver/Gold tiers on a single non-transferable token. Exposes tierOf(address) so any ChainIntegrate project (MyCarBook, etc.) can gate features by membership level with a single on-chain read.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages