Skip to content

0xarcano/POAP-to-LATA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 

Repository files navigation

POAP-to-LATA Automation Project

Technical Design and Collaborative Development Plan


πŸ“‹ Executive Summary

This project implements an automated system for claiming LATA governance tokens based on verification of specific POAP ownership. The solution uses custom Aragon OSX plugins to manage the list of eligible POAPs and automate the token claiming process.


πŸ—οΈ System Architecture

Main Components

πŸ“¦ EnceboDAO Automation System
β”œβ”€β”€ πŸ›οΈ Aragon OSX DAO (Base)
β”œβ”€β”€ πŸͺ™ LATA Token Contract (ERC-20Votes)
β”œβ”€β”€ πŸ”Œ POAP Manager Plugin
β”œβ”€β”€ πŸ”Œ POAP Claim Plugin
β”œβ”€β”€ 🌐 Frontend Interface
└── πŸ“Š Monitoring & Analytics

Technology Stack

  • Blockchain: Arbitrum (Mainnet & Sepolia for testing)
  • DAO Framework: Aragon OSX
  • Smart Contracts: Solidity ^0.8.19
  • Frontend: React + TypeScript + Vite
  • Testing: Hardhat + Chai + Mocha
  • Tools: OpenZeppelin, Aragon SDK

πŸ”§ Detailed Technical Specifications

1. POAP Manager Plugin

Purpose: Manage token claiming system configuration.

Main Functionalities:

interface IPOAPManager {
    function addEligiblePOAP(uint256 poapId) external;
    function removeEligiblePOAP(uint256 poapId) external;
    function setRequiredThreshold(uint256 threshold) external;
    function setTokensPerPOAP(uint256 amount) external;
    function getEligiblePOAPs() external view returns (uint256[] memory);
    function getRequiredThreshold() external view returns (uint256);
}

Technical Features:

  • Inherits from Aragon OSX PluginUUPSUpgradeable
  • Access control based on Aragon permissions
  • Events for all configuration modifications
  • Robust input validations

2. POAP Claim Plugin

Purpose: Automate LATA token claiming based on POAPs.

Main Functionalities:

interface IPOAPClaim {
    function claimTokens() external;
    function batchClaimTokens(address[] calldata users) external;
    function getClaimableAmount(address user) external view returns (uint256);
    function hasClaimedPOAP(address user, uint256 poapId) external view returns (bool);
}

Technical Features:

  • Automatic POAP ownership verification
  • Prevention of double claiming per POAP
  • Gas optimization for batch claims
  • Detailed event system for traceability

3. LATA Token Contract

Specifications:

contract LATAToken is ERC20Votes, AccessControl {
    bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
    
    function mint(address to, uint256 amount) external onlyRole(MINTER_ROLE);
    function burn(address from, uint256 amount) external onlyRole(MINTER_ROLE);
}

Features:

  • Implements ERC-20Votes for Aragon compatibility
  • Role system for issuance control
  • Controlled mint/burn functions
  • Native integration with delegation system

About

This project implements an automatized way to mint/deliver tokens, based in the POAPs ownership

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published