# CreateGovernmentNFTAndDAO ## RU Скрипты для Devnet, чтобы управлять NFT через DAO (Realms/SPL Governance): 1) создать предложение на выпуск NFT (`mint`) и выполнить его; 2) создать предложение на сжигание NFT (`burn`) и выполнить его. ### Что лежит в папке - `config.env` — параметры кластера, DAO, ключей. - `keypairs/` — ключи оператора и второго участника. - `runs/` — отчёты запусков (proposal, tx и т.д.). - `00_prepare_voter2_deposit.js` — депонирование governance-токена для второго голосующего. - `01_create_nft_for_wallet_admin.js` — создать NFT на кошелёк и делегировать право governance PDA. - `01b_create_empty_nft_template.js` — создать пустой NFT mint-шаблон (supply=0) для будущего DAO mint. - `02_propose_vote_mint_nft.js` — создать+подписать+проголосовать за proposal на mint. - `03_execute_mint_nft.js` — выполнить proposal mint. - `04_propose_vote_burn_nft.js` — создать+подписать+проголосовать за proposal на burn. - `05_execute_burn_nft.js` — выполнить proposal burn. ### Важно перед запуском 1. Нужен `node`, `@solana/web3.js`, `@solana/spl-token`, `@solana/spl-governance`. 2. В `config.env` должен быть корректный `REALM`, `GOVERNANCE`, `GOVERNING_MINT`, `MAIN_KEYPAIR`. 3. Для `mint via DAO` целевой ATA должен существовать заранее (скрипт `02` это проверяет). ### Быстрый полный тест (mint + burn) 1. Создать NFT-шаблон (куда DAO будет минтить): - `node 01b_create_empty_nft_template.js ./config.env` 2. Создать ATA для целевого кошелька и этого mint (если ещё нет). 3. Поднять proposal на mint: - `node 02_propose_vote_mint_nft.js ./config.env ` 4. Выполнить proposal (команду берёшь из консоли шага 3): - `node 03_execute_mint_nft.js ./config.env ` 5. Создать NFT для burn-теста: - `node 01_create_nft_for_wallet_admin.js ./config.env ` 6. Поднять proposal на burn: - `node 04_propose_vote_burn_nft.js ./config.env ` 7. Выполнить proposal burn (команда из шага 6): - `node 05_execute_burn_nft.js ./config.env ` ### Как проверить результат Смотри JSON-отчёты в `runs/`: там есть `proposal`, `proposalTransaction`, tx подписи и mint/кошельки. Для проверки через час: 1) поднимаешь proposal (скрипт `02` или `04`); 2) ждёшь; 3) запускаешь соответствующий `execute` скрипт с параметрами из отчёта. ### Проверка DAO В текущем `config.env`: - Realm: `2DTh1ivaekAW8kRYzGPsL2taFLJFFkBjEwqPisebxsS7` - Governance PDA: `EMZ8vmr1xB4HZBDCFL9rHB98m1C5cYrGnRA8ZHayyGwD` - Governing mint: `F1KctLRvVzqwcBYNGsivnjR39gY8Uvq5U3uyaqEBNASg` ## EN Devnet scripts for DAO-governed NFT flow (Realms/SPL Governance): - propose/sign/vote/execute NFT mint to a wallet; - propose/sign/vote/execute NFT burn from a wallet. Main idea: first script in each pair creates proposal and vote, second script executes proposal later.