This iteration includes:
@dac-cloud/manifests: loaders for contracts deployment manifests.@dac-cloud/core: viem-based core client for DAC.cloud contracts.@dac-cloud/indexer: typed GraphQL query client facade for DAC/Deal read-model access.@dac-cloud/cli: load/stress helper CLI with concrete DAC-level proposal flows.
npm install
npm run typecheck
npm run build@dac-cloud/indexer now uses GraphQL Code Generator with typed documents generated from the live GraphQL endpoint.
INDEXER_SCHEMA_URL=http://127.0.0.1:8080/v1/graphql \
npm run codegen --workspace @dac-cloud/indexernode packages/cli/dist/index.js create-dacs \
--count 5 \
--contracts-root /home/iliao/git/dac-cloud-contracts \
--rpc-url http://127.0.0.1:8545Delegate DAC MainToken votes to founder wallet:
node packages/cli/dist/index.js delegate-main \
--dac 0xYourDacCellAddress \
--contracts-root /home/iliao/git/dac-cloud-contractsCreate, vote, and execute a DAC proposal to mint agent tokens:
node packages/cli/dist/index.js mint-agent-tokens \
--dac 0xYourDacCellAddress \
--agent 0xAgentWalletAddress \
--amount 1000000000000000000 \
--pre-vote-advance-seconds 1 \
--advance-seconds 604801 \
--contracts-root /home/iliao/git/dac-cloud-contractsRevoke agent tokens via DAC proposal:
node packages/cli/dist/index.js revoke-agent-tokens \
--dac 0xYourDacCellAddress \
--agent 0xAgentWalletAddress \
--amount 1000000000000000000 \
--pre-vote-advance-seconds 1 \
--advance-seconds 604801 \
--contracts-root /home/iliao/git/dac-cloud-contractsMint/Burn DAC treasury main-token reserve:
node packages/cli/dist/index.js mint-main-reserve \
--dac 0xYourDacCellAddress \
--amount 1000000000000000000 \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js burn-main-reserve \
--dac 0xYourDacCellAddress \
--amount 1000000000000000000 \
--contracts-root /home/iliao/git/dac-cloud-contractsCapital call flow (phase 1: propose + vote + execute):
node packages/cli/dist/index.js capital-call-propose \
--dac 0xYourDacCellAddress \
--recipient 0xRecipientAddress \
--treasury-token 0xTreasuryToken \
--token-amount 1000000000000000000 \
--cash-amount 0 \
--contracts-root /home/iliao/git/dac-cloud-contractsCapital call flow (phase 2: fulfill, usually from another wallet):
node packages/cli/dist/index.js capital-call-fulfill \
--dac 0xYourDacCellAddress \
--treasury-token 0xTreasuryToken \
--recipient 0xRecipientAddress \
--token-amount 1000000000000000000 \
--cash-amount 0 \
--nonce 11 \
--private-key 0xAnotherWalletPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contractsRecover treasury accounting snapshot for token:
node packages/cli/dist/index.js recover-treasury \
--dac 0xYourDacCellAddress \
--token 0xTokenAddress \
--contracts-root /home/iliao/git/dac-cloud-contractsDeposit treasury through DACCell.depositTreasury:
node packages/cli/dist/index.js deposit-treasury \
--dac 0xYourDacCellAddress \
--token 0xTokenAddress \
--amount 1000000000000000000 \
--contracts-root /home/iliao/git/dac-cloud-contractsdepositTreasury note: in current contracts this path is restricted to registered deal callers, not plain EOAs.
Delegate vote rights from DAC treasury holdings via governance proposal:
node packages/cli/dist/index.js delegate-vote-rights-proposal \
--dac 0xYourDacCellAddress \
--token 0xVotesTokenAddress \
--delegatee 0xDelegateeAddress \
--contracts-root /home/iliao/git/dac-cloud-contractsCreate a treasury deal proposal:
node packages/cli/dist/index.js create-treasury-deal \
--dac 0xYourDacCellAddress \
--funding-token 0xUsdcAddress \
--funding-amount 10000000 \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contractsStake and delegate StakedAgent votes:
node packages/cli/dist/index.js stake-agent-to-deal \
--dac 0xYourDacCellAddress \
--deal-cell 0xDealCell \
--amount 20000 \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js delegate-stake \
--deal-cell 0xDealCell \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contractsRequest a new tranche from deal governance:
node packages/cli/dist/index.js request-tranche \
--deal 0xDealAddress \
--token 0xUsdcAddress \
--amount 5000 \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contractsApprove tranche on DAC governance (using dacProposalId returned by request-tranche):
node packages/cli/dist/index.js approve-tranche \
--dac 0xYourDacCellAddress \
--proposal-id 17 \
--advance-seconds 604801 \
--contracts-root /home/iliao/git/dac-cloud-contractsTreasury deal proposal actions (deal-level governance):
node packages/cli/dist/index.js treasury-direct-spend \
--deal 0xDealAddress \
--token 0xUsdcAddress \
--destination 0xRecipient \
--amount 1000000 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js treasury-permit2-spend \
--deal 0xDealAddress \
--token 0xUsdcAddress \
--spender 0xPermit2Spender \
--amount 1000000 \
--expiration 1893456000 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js treasury-return-capital \
--deal 0xDealAddress \
--token 0xUsdcAddress \
--amount 1000000 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js treasury-approve-agent-spend \
--deal 0xDealAddress \
--token 0xUsdcAddress \
--agent 0xAgent \
--destination 0xCounterpartyOrZero \
--total-amount 1000000 \
--single-tx-amount 100000 \
--clock-limit 0 \
--duration 3600 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js treasury-assign-claimer \
--deal 0xDealAddress \
--agent 0xAgent \
--token 0xUsdcAddress \
--counterparty 0xSourceOrZero \
--amount 1000000 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js treasury-revoke-agent \
--deal 0xDealAddress \
--token 0xUsdcAddress \
--agent 0xAgent \
--counterparty 0xCounterpartyOrZero \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js treasury-delegate-vote-rights \
--deal 0xDealAddress \
--token 0xVotesToken \
--delegatee 0xDelegatee \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contractsChild DAC deal minimal flows:
# 1) Create child DAC governance proposal through parent deal
node packages/cli/dist/index.js child-dac-create-proposal \
--deal 0xChildDealAddress \
--child-typ 0x12345678 \
--child-target 0x0000000000000000000000000000000000000000 \
--child-i 0 \
--child-data 0x \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
# 2) Vote/execute spawned parent-deal proposal (returned as spawnedChildVoteDealProposalId)
node packages/cli/dist/index.js deal-proposal-vote-execute \
--deal 0xChildDealAddress \
--proposal-id 42 \
--advance-seconds 604801 \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
# Direct child vote action proposal (creates a new vote proposal in parent deal)
node packages/cli/dist/index.js child-dac-vote-proposal \
--deal 0xChildDealAddress \
--child-proposal-id 7 \
--support true \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js child-dac-return-profits \
--deal 0xChildDealAddress \
--token 0xToken \
--amount 1000000 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contracts
node packages/cli/dist/index.js child-dac-reinvest-profits \
--deal 0xChildDealAddress \
--token 0xToken \
--amount 1000000 \
--capital-call-hash 0x0000000000000000000000000000000000000000000000000000000000000000 \
--stake-token 0xStakedAgentToken \
--private-key 0xAgentPrivateKey \
--contracts-root /home/iliao/git/dac-cloud-contractsIndexer read commands:
node packages/cli/dist/index.js view-dac \
--address 0xYourDacCellAddress \
--indexer-url http://127.0.0.1:8080/v1/graphql
node packages/cli/dist/index.js view-deal \
--address 0xDealAddress \
--indexer-url http://127.0.0.1:8080/v1/graphql
node packages/cli/dist/index.js view-proposals \
--dac-address 0xYourDacCellAddress \
--limit 20 \
--indexer-url http://127.0.0.1:8080/v1/graphql
node packages/cli/dist/index.js view-capital-calls \
--dac-address 0xYourDacCellAddress \
--indexer-url http://127.0.0.1:8080/v1/graphql
node packages/cli/dist/index.js view-treasury-actions \
--deal-address 0xDealAddress \
--indexer-url http://127.0.0.1:8080/v1/graphqlDefaults:
- chain id
31337 - private key = Anvil account #0
- treasury token from
basic-dac-seed.jsonif available - if proposal execution mints new MainToken supply, run
delegate-mainagain to refresh active vote weight onERC20Votes - CLI now decodes known DAC/OZ custom error selectors via
formatViemErrorfor more readable revert output
Core module namespace:
- import
coreModulefrom@dac-cloud/corefor Core module selectors/types/encoders: coreModule.CORE_DEAL_KINDcoreModule.CORE_EVALUATOR_KINDcoreModule.CORE_DEAL_MANAGEMENT_PROPOSAL_TYPEcoreModule.buildMilestoneEvaluatorConfig(...)coreModule.buildRevenueEvaluatorConfig(...)
- Add transaction recipes for governance + deals (module-aware).
- Add batch scenario templates in CLI (deals, tranches, votes).
- Add proposals/capital-calls/treasury query facade coverage in
@dac-cloud/indexer.