DeXe DAO governance
DeXe Protocol DAOs for AI agents: create DAOs, proposals, votes, OTC token sales, on-chain reads.
Connector by edward-arinin-web-dev · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/edward-arinin-web-dev-dexe-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 71 read · 93 write · 0 delete · 6 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 170
Read from the source code; the running server may list different tools.
Read 71 · Look things up without changing anything.
dexe_agents_ledgerdexe_agents_listdexe_dao_infodexe_dao_predict_addressesdexe_dao_registry_lookupdexe_decode_calldatadexe_decode_proposaldexe_doctordexe_find_selectordexe_get_abidexe_get_configdexe_get_methods
Show 59 more tools
dexe_get_natspecdexe_get_selectorsdexe_get_sourcedexe_gov_decode_calldatadexe_gov_get_proposaldexe_gov_get_proposal_thresholddexe_gov_get_quorumdexe_gov_get_statedexe_gov_get_voting_powerdexe_gov_has_voteddexe_gov_hash_descriptiondexe_gov_hash_proposaldexe_gov_list_governorsdexe_gov_simulate_proposaldexe_gov_simulate_vote_impactdexe_graph_querydexe_ipfs_cid_for_jsondexe_ipfs_cid_infodexe_ipfs_fetchdexe_list_contractsdexe_list_gov_contract_typesdexe_merkle_proofdexe_proposal_catalogdexe_proposal_forecastdexe_proposal_listdexe_proposal_risk_assessdexe_proposal_statedexe_proposal_votersdexe_read_dao_expertsdexe_read_dao_listdexe_read_dao_membersdexe_read_dao_statsdexe_read_delegation_mapdexe_read_distribution_statusdexe_read_expert_statusdexe_read_gov_statedexe_read_multicalldexe_read_nftsdexe_read_privacy_policy_statusdexe_read_protocol_statsdexe_read_settingsdexe_read_staking_infodexe_read_token_holdersdexe_read_token_sale_positiondexe_read_token_sale_tiersdexe_read_token_sale_userdexe_read_token_salesdexe_read_treasurydexe_read_user_activitydexe_read_validator_listdexe_read_validatorsdexe_safe_infodexe_sim_calldatadexe_sim_proposaldexe_tx_approval_statusdexe_tx_statusdexe_vote_get_votesdexe_vote_user_powerdexe_wc_status
Write 93 · Create, change, send or run things.
dexe_agents_funddexe_auth_logindexe_auth_login_requestdexe_auth_request_noncedexe_compiledexe_coveragedexe_dao_build_deploydexe_dao_createdexe_dao_generate_avatardexe_gov_build_canceldexe_gov_build_delegatedexe_gov_build_execute
Show 81 more tools
dexe_gov_build_proposedexe_gov_build_queuedexe_gov_build_vote_castdexe_ipfs_update_dao_metadatadexe_ipfs_upload_avatardexe_ipfs_upload_dao_metadatadexe_ipfs_upload_filedexe_ipfs_upload_proposal_metadatadexe_merkle_builddexe_offchain_build_cancel_votedexe_offchain_build_votedexe_otc_buyer_buydexe_otc_buyer_claim_alldexe_otc_dao_open_saledexe_proposal_build_add_expertdexe_proposal_build_apply_to_daodexe_proposal_build_blacklistdexe_proposal_build_change_math_modeldexe_proposal_build_change_validator_balancesdexe_proposal_build_change_validator_settingsdexe_proposal_build_change_voting_settingsdexe_proposal_build_create_staking_tierdexe_proposal_build_custom_abidexe_proposal_build_delegate_to_expertdexe_proposal_build_externaldexe_proposal_build_internaldexe_proposal_build_manage_validatorsdexe_proposal_build_modify_dao_profiledexe_proposal_build_monthly_withdrawdexe_proposal_build_new_proposal_typedexe_proposal_build_offchaindexe_proposal_build_offchain_for_againstdexe_proposal_build_offchain_internal_proposaldexe_proposal_build_offchain_multi_optiondexe_proposal_build_offchain_settingsdexe_proposal_build_offchain_single_optiondexe_proposal_build_remove_expertdexe_proposal_build_revoke_from_expertdexe_proposal_build_reward_multiplierdexe_proposal_build_token_distributiondexe_proposal_build_token_saledexe_proposal_build_token_sale_multidexe_proposal_build_token_sale_recoverdexe_proposal_build_token_sale_whitelistdexe_proposal_build_token_transferdexe_proposal_build_withdraw_treasurydexe_proposal_createdexe_proposal_vote_and_executedexe_safe_propose_txdexe_sim_buydexe_testdexe_tx_senddexe_vote_build_cancel_votedexe_vote_build_claim_micropool_rewardsdexe_vote_build_claim_rewardsdexe_vote_build_delegatedexe_vote_build_depositdexe_vote_build_distribution_claimdexe_vote_build_erc20_approvedexe_vote_build_executedexe_vote_build_move_to_validatorsdexe_vote_build_multicalldexe_vote_build_nft_multiplier_lockdexe_vote_build_nft_multiplier_unlockdexe_vote_build_privacy_policy_agreedexe_vote_build_privacy_policy_signdexe_vote_build_staking_claimdexe_vote_build_staking_claim_alldexe_vote_build_staking_reclaimdexe_vote_build_staking_stakedexe_vote_build_token_sale_buydexe_vote_build_token_sale_claimdexe_vote_build_token_sale_vesting_withdrawdexe_vote_build_undelegatedexe_vote_build_validator_cancel_votedexe_vote_build_validator_votedexe_vote_build_votedexe_vote_build_withdrawdexe_wc_connectdexe_wc_disconnectdexe_write_context
Not yet classified 6 · We could not tell from the name and description.
dexe_contextdexe_dao_reportdexe_graph_schemadexe_guidedexe_lintdexe_user_inbox
Files it touches
- Any path the agent passes to its tools
Tools (170)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
dexe_agents_fundFund agent keyring wallets from the primary signer (preview, then confirm)Broadcasts when a signer is configured. Tops up keyring wallets — native, or an ERC20 via `token` — from the primary DEXE_PRIVATE_KEY signer, or AGENT_FUNDER_PK with source:'funder'. PREVIEWS FIRST: nothing is broadcast without confirm:true. Guards: recipients can ONLY be keyring addresses; per-agent amount capped by DEXE_AGENT_FUND_MAX_WEI (0.1 native default, rescaled to an ERC20's decimals; unreadable decimals() refused); rolling-24h SWARM_DAILY_BNB_BUDGET checked before every transfer; broadcast guards B6–B11 run.
dexe_agents_ledgerRead the agent action ledger (per-agent history + spend)Read-only. What the keyring fleet did over a rolling window: each broadcast with its signer (agent1…, funder, primary), tool, action, tx hash and outcome; per-agent and total spend (native value + gas); remaining SWARM_DAILY_BNB_BUDGET. Local file (DEXE_AGENT_LEDGER_PATH to move it, DEXE_AGENT_LEDGER=off to disable); addresses only, never keys.
dexe_agents_listList the agent keyring (addresses + balances)Read-only. Every keyring signer (DEXE_AGENT_PK_* / AGENT_PK_*, plus 'funder' from AGENT_FUNDER_PK): signerKey, address, native balance, and an ERC20 balance when `token` is set. Pass a signerKey to a broadcast tool to act from that wallet.
dexe_auth_loginOff-chain auth — one call: fetch nonce, sign, log in, return Bearer tokenWrites to a remote service. Off-chain backend auth in one call: with a signer available (a connected WalletConnect session, the keystore — after the owner approves the exact nonce message; awaiting_approval until then, re-run the same call — or an unattended DEXE_PRIVATE_KEY) it fetches the nonce, signs it INSIDE the server, posts the login and returns the Bearer access token — so agent code never touches the private key. Pass the returned accessToken as `Authorization: Bearer <accessToken>` on off-chain proposal/vote requests. With no signer it returns the manual dexe_auth_request_nonce + dex…
dexe_auth_login_requestAuth step 2/2: exchange signed nonce for access_tokenBuilds an HTTP request; does not send it. POST /integrations/nonce-auth-svc/login. The response carries `{ access_token: { id }, refresh_token: { id } }`; send access_token.id as the Bearer token on every later off-chain call.
dexe_auth_request_nonceAuth step 1/2: request a nonce to signBuilds an HTTP request; does not send it. POST /integrations/nonce-auth-svc/nonce. The response carries `{ message }` — sign that with the wallet, then call dexe_auth_login_request. Or skip both: dexe_auth_login does the whole dance when a signer is configured.
dexe_compileCompile DeXe-ProtocolRuns locally and writes artifacts. `npm run compile` in DEXE_PROTOCOL_PATH; parses solc diagnostics, refreshes the artifact cache. Run once per session before introspection.
dexe_contextdexe_coverageRun solidity-coverageRuns locally and writes artifacts. `npm run coverage` in DEXE_PROTOCOL_PATH, then coverage/coverage-summary.json for per-file line/branch percentages. Slow (minutes).
dexe_dao_build_deployBuild calldata to deploy a new DAO (PoolFactory.deployGovPool)Builds calldata; does not broadcast. `PoolFactory.deployGovPool(GovPoolDeployParams)` — the ADVANCED path behind the frontend wizard. Prefer dexe_dao_create, which synthesizes a coherent config from `symbol` + `totalSupply`. Auto-wired for you: one `proposalSettings` entry expands to 5 slots (default, internal, validators, distributionProposal, tokenSale — index 3 forces delegatedVotingAllowed:false and earlyCompletion:false; pass exactly 5 to override); the predicted govToken / distributionProposal / govTokenSale addresses; and the vote-power initData for LINEAR/POLYNOMIAL. Decimal convention…
dexe_dao_createBroadcasts when a signer is configured. Deploys a new DeXe DAO in ONE call. SIMPLE mode (recommended): pass `symbol` + `totalSupply` and the tool synthesizes a coherent, frontend-equivalent config (LINEAR power, treasury as an implicit remainder, a quorum that passes on realistic turnout). ADVANCED mode: pass a full `params` struct. Returns a `preview` of the resolved config + a safety proof and broadcasts only with `confirm: true`. Runs the frontend's governance coherence guards over ALL FIVE settings slots (default / internal / validators / distribution / tokenSale) — one un-passable slot br…
dexe_dao_generate_avatarGenerate a deterministic placeholder avatar for a DAOWrites to a remote service. Renders a real JPEG of the DAO's initials over a hash-coloured gradient and pins it, returning {avatarCID, avatarFileName, avatarUrl}. Deterministic.
dexe_dao_infoDAO overview — helpers, NFT contracts, validator countRead-only. One multicall on a GovPool: helper addresses, NFT contract addresses, description URL, and live validator count.
dexe_dao_predict_addressesPredict addresses for a future DAO deploymentRead-only. Calls `PoolFactory.predictGovAddresses(deployer, poolName)` — the six CREATE2-predicted contract addresses for a DAO before it is deployed.
dexe_dao_registry_lookupCheck whether an address is a DeXe GovPoolRead-only. Calls `PoolRegistry.isGovPool(address)` — true when the address is a registered DeXe DAO GovPool.
Show 155 more tools
dexe_dao_reportFull DAO report — one call, every section, with a since-diffDescription is built at runtime.
dexe_decode_calldataDecode ABI-encoded calldataRead-only, local. Decodes '0x…' calldata against the DeXe Protocol ABIs (bundled; a local compile wins) — only `contract`'s when given, else every match.
dexe_decode_proposalRead and decode a GovPool proposalRead-only. Fetches a GovPool proposal via `getProposals(offset, limit)` and decodes its for/against actions.
dexe_doctordexe-mcp startup diagnosticread-onlyReturns why dexe-mcp failed to start and how to fix it. The server is running in degraded mode — this is the only tool available until the cause is fixed and the host restarted.
dexe_find_selectorReverse selector lookupRead-only, local. Maps a 4-byte selector or 32-byte event topic to every matching contract and signature in the compiled codebase; collisions included.
dexe_get_abiGet contract ABIRead-only, local. Contract ABI JSON from the local compile output; run dexe_compile (needs DEXE_TOOLSETS=core,dev) once per session first. Narrow with `kind`/`nameFilter` (GovPool ABI ~21.8k chars).
dexe_get_configRead-only, local. The resolved read config: chain set and default chain, subgraph coverage per chain, the backend API and the IPFS read gateways.
dexe_get_methodsGet contract methods (read/write)Read-only, local. Per-function metadata split into read (view/pure) and write (nonpayable/payable), with canonical signatures, 4-byte selectors and `internalType` kept for tuples.
dexe_get_natspecGet NatSpec docsRead-only, local. devdoc/userdoc from build-info; optionally scoped to one member.
dexe_get_selectorsGet contract selectorsRead-only, local. Function/event/error selectors from the local compile output; run dexe_compile (needs DEXE_TOOLSETS=core,dev) once per session first.
dexe_get_sourceGet contract sourceRead-only, local. Source file path for a contract; optionally slices around a symbol via a naive regex scan.
dexe_gov_build_cancelEncode Governor.cancel calldataBuilds calldata; does not broadcast. `Governor.cancel`. OZ v4+: pass targets/values/calldatas + description or descriptionHash. Bravo: pass proposalId only.
dexe_gov_build_delegateEncode IVotes.delegate calldata on the configured voting tokenBuilds calldata; does not broadcast. `IVotes.delegate` — `to` is the voting token, NOT the Governor. The zero address revokes the delegation.
dexe_gov_build_executeEncode Governor.execute calldataBuilds calldata; does not broadcast. `Governor.execute`. OZ v4+: pass targets/values/calldatas plus description or descriptionHash. Bravo: pass proposalId only.
dexe_gov_build_proposeEncode Governor.propose calldataBuilds calldata; does not broadcast. `Governor.propose`: OZ v4+ takes (targets, values, calldatas, description), Bravo takes (targets, values, signatures, calldatas, description) and defaults signatures to empty strings.
dexe_gov_build_queueEncode Governor.queue calldataBuilds calldata; does not broadcast. `Governor.queue`. OZ v4+: pass targets/values/calldatas plus description (hashed for you) or descriptionHash. Bravo: pass proposalId only.
dexe_gov_build_vote_castEncode Governor.castVote / castVoteWithReason calldataBuilds calldata; does not broadcast. `Governor.castVote`, or `castVoteWithReason` when `reason` is set. Identical signature on OZ and Bravo.
dexe_gov_decode_calldataDecode any Governor write calldata back to its named argsRead-only, local. Parses 0x-hex calldata against the configured Governor's write ABI (family-aware) into {method, args} — audit a tx before signing, or round-trip a dexe_gov_build_* payload.
dexe_gov_get_proposalRead OpenZeppelin Governor proposal state + talliesRead-only. ProposalState (name + enum index), snapshot block, deadline block and proposalVotes (for/against/abstain) for one proposal on a configured Governor.
dexe_gov_get_proposal_thresholdRead Governor proposalThreshold()Read-only. `Governor.proposalThreshold()` — the voting power needed to submit a proposal. Returns the live uint256 plus the bundled config value, and whether they still agree.
dexe_gov_get_quorumRead Governor quorum threshold at a snapshot blockRead-only. Quorum threshold at a snapshot block (latest when omitted). Bravo (UNI/COMP) reads fixed quorumVotes(); vanilla OZ reads quorum(blockNumber); OP-style governors, whose quorum() is keyed by proposalId, use votableSupply(block) * quorumNumerator/quorumDenominator. `method` reports the path taken, `configured` echoes the numerator/denominator to cross-check.
dexe_gov_get_stateRead Governor.state() — minimal proposal-state lookupRead-only. `Governor.state(proposalId)` as {index, name} — one eth_call when the state is all you need.
dexe_gov_get_voting_powerRead IVotes voting power for an accountRead-only. `IVotes.getPastVotes(account, blockNumber)` on the Governor's voting token, or `getVotes(account)` when blockNumber is omitted. Raw wei plus the token's decimals.
dexe_gov_has_votedRead whether an account has voted on a proposalRead-only. Whether the account already voted. OZ reads hasVoted(proposalId, account); Bravo has no hasVoted, so it reads getReceipt(proposalId, voter).hasVoted.
dexe_gov_hash_descriptionCompute keccak256(toUtf8Bytes(description))Read-only, local. keccak256(toUtf8Bytes(description)) — the 32-byte descriptionHash OZ queue/execute/cancel take.
dexe_gov_hash_proposalCall OZ Governor.hashProposal — preview the deterministic proposalIdRead-only. OZ v4+ only: `Governor.hashProposal` gives the deterministic proposalId for a (targets, values, calldatas, descriptionHash) tuple before submission. Bravo has no hashProposal and is refused with that reason.
dexe_gov_list_governorsList configured external Governor DAOsRead-only, local. Every bundled external-Governor config: its chain, governor address, voting token, voting params and timelock. A static snapshot — a DAO can change its params by proposal.
dexe_gov_simulate_proposalDry-run Governor.execute() via eth_callRead-only. eth_call dry-run of Governor.execute() (Bravo: proposalId; OZ: targets/values/calldatas + description or hash), returning {success, revertReason, decodedCall, currentState}. Single-block only, not a fork-and-time-warp: a Queued proposal whose timelock ETA has not elapsed reverts with the timelock error.
dexe_gov_simulate_vote_impactProject proposal outcome after a hypothetical voteRead-only. Reads the live tallies + quorum and projects the outcome if `weight` of voting power were cast with `support`. Returns currentTallies, projectedTallies, quorumMet, willPass. Quorum counting follows the governor's COUNTING_MODE (`quorum.counting`): Bravo and CompoundGovernor count For only, vanilla OZ counts For+Abstain, Optimism counts all three. `willPass` ignores any per-proposal-type approvalThreshold or voting module — see `caveats` when present.
dexe_graph_queryFree-form GraphQL query against a DeXe subgraphDescription is built at runtime.
dexe_graph_schemaIntrospect a DeXe subgraph schemaDescription is built at runtime.
dexe_guideDescription is built at runtime.
dexe_ipfs_cid_for_jsonCompute a JSON value's IPFS CIDs locally — no network, nothing pinnedRead-only, local. Hashes a JSON value offline, pinning NOTHING — content stays unfetchable until you upload it. `pinataCid` is the dag-pb CIDv0 a real Pinata upload returns: use it wherever a CID goes on-chain. `cid` is the json-codec CIDv1.
dexe_ipfs_cid_infoParse an IPFS CID (version, codec, gateway URLs)Read-only, local. Parses a CIDv0/v1, reports codec + multihash, converts v0↔v1 when legal, and emits a URL per configured gateway.
dexe_ipfs_fetchFetch content by CID (dedicated gateway, optional fallback)Read-only. Fetches IPFS content by CID through the server's gateway chain: its dedicated gateway first when it has one, then the configured or public fallbacks.
dexe_ipfs_update_dao_metadataFetch DAO metadata, apply partial overrides, re-uploadWrites to a remote service. Fetches the current DAO metadata from IPFS, applies only `overrides`, re-pins the merge (omitted fields kept) and returns the new outer `descriptionURL`.
dexe_ipfs_upload_avatarUpload a DAO avatar (one-shot: pins + returns avatarCID/avatarFileName/avatarUrl)Writes to a remote service. Pins an image, returning {avatarCID, avatarFileName, avatarUrl}. PREFER `filePath`; never pass base64 through the conversation. Magic-byte validated (JPEG/PNG/WebP/GIF only — SVG/HTML render broken on app.dexe.io); renamed `.jpeg`; CID v1 base32.
dexe_ipfs_upload_dao_metadataUpload DAO metadata to IPFS (frontend-compatible nested format)Writes to a remote service. Pins DAO metadata in the frontend's nested shape (description pin + outer wrapper); returns the outer CID for `descriptionURL` in `deployGovPool`.
dexe_ipfs_upload_fileUpload raw bytes (avatar, attachment, etc.) to IPFS (Pinata)Writes to a remote service. Pins a file to IPFS; PREFER `filePath` over base64. Returns CID v1 (base32) + filename. Images are magic-byte gated to rasters and renamed `.jpeg` unless `normalizeImageExt: false`.
dexe_ipfs_upload_proposal_metadataUpload proposal metadata JSON to IPFS (Pinata)Writes to a remote service. Pins `{proposalName, proposalDescription}` to IPFS via Pinata; returns the CID for `descriptionURL` in `GovPool.createProposal`.
dexe_lintRun protocol lintersRuns locally and writes artifacts. `npm run lint-fix` with `fix: true` (solhint/eslint/jsonlint), else `npm run lint-check`.
dexe_list_contractsList compiled contractsRead-only, local. Lists the compiled DeXe-Protocol contracts; filter by name substring and/or kind.
dexe_list_gov_contract_typesDeXe governance contract catalogRead-only, local. Catalog of the DeXe governance contracts: what each does and where its source lives.
dexe_merkle_buildBuild a merkle tree (OZ StandardMerkleTree compatible)Read-only, local. Builds an OpenZeppelin StandardMerkleTree (what DeXe token-sale whitelists verify). Default leaf is one address; `leafEncoding` + `entries` for richer leaves.
dexe_merkle_proofCompute a merkle proof for one address (or leaf)Read-only, local. Same tree, but returns the proof for one target — buyer-side flows needing a single proof. Default shape: address-only.
dexe_offchain_build_cancel_voteOff-chain: cancel a previously cast voteBuilds an HTTP request; does not send it. DELETE /integrations/voting/vote/{proposalId}/{voterAddress}, no body. Needs a backend access_token: call dexe_auth_login first.
dexe_offchain_build_voteOff-chain: cast a vote on an existing off-chain proposalBuilds an HTTP request; does not send it. POST /integrations/voting/vote. `options` holds the selected option strings — one for one_of, one or more for multiple_of. Needs a backend access_token: call dexe_auth_login first.
dexe_otc_buyer_buyBroadcasts when a signer is configured. Preflights balance + allowance, adds an ERC20 approve when needed, then builds `TokenSaleProposal.buy(tierId, paymentToken, amount, proof)`. Native path (0x000...000) skips approve and sets `value`; `whitelistUsers` generates the proof.
dexe_otc_buyer_claim_allBroadcasts when a signer is configured. Reads `getUserViews(user, tierIds)` and sends `claim` for tiers with `claimableAmount > 0`. Tiers whose only balance is the VESTED leg are reported under `vestingBlocked` and NOT sent — `vestingWithdraw` is refused by the pool's firewall (upstream defect F15); `includeVesting: true` tries anyway.
dexe_otc_dao_open_saleBroadcasts when a signer is configured. Proposes a multi-tier token sale on an OTC DAO: builds the `createTiers` envelope (deduped approves, auto-merkle, auto-addToWhitelist, merkle lists pinned to IPFS so buyers can regenerate proofs), then runs the proposal_create flow (approve, deposit, IPFS metadata, `createProposalAndVote`). DAOs from `dexe_dao_create` (v0.19+) already wire TokenSaleProposal as an executor; older ones need a `new_proposal_type` proposal first.
dexe_proposal_build_add_expertWrapper: mint a local or global Expert NFT to a nominated userBuilds proposal actions; does not broadcast. ExpertNft.mint(nominatedUser, uri); scope 'local' = the DAO's ExpertNft, 'global' = DeXeExpertNft.
dexe_proposal_build_apply_to_daoWrapper: apply for/disburse DAO tokens to a receiver (transfer + optional mint)Builds proposal actions; does not broadcast. ERC20.transfer when `treasuryBalance` covers `amount`, else the balance plus ERC20Gov.mint for the shortfall. When an RPC is reachable for the target chain (the built-in public RPC counts) the receiver is checked against isBlacklisted; build aborts if blacklisted.
dexe_proposal_build_blacklistWrapper: add/remove addresses from the DAO token blacklistBuilds proposal actions; does not broadcast. One ERC20Gov.blacklist(add, true) action and/or one blacklist(remove, false); an empty array skips either.
dexe_proposal_build_change_math_modelWrapper: swap the DAO's vote-power math contractBuilds proposal actions; does not broadcast. GovPool.changeVotePower(newVotePower): a deployed power contract (LINEAR_POWER, POLYNOMIAL_POWER, or a custom one).
dexe_proposal_build_change_validator_balancesInternal type 1: change validator balancesBuilds calldata; does not broadcast. `data` for GovValidators.createInternalProposal(type=1) — changeBalances(balances, users); balance 0 removes a validator.
dexe_proposal_build_change_validator_settingsInternal type 0: change validator voting settings (duration, delay, quorum)Builds calldata; does not broadcast. `data` for GovValidators.createInternalProposal(type=0) — changeSettings(duration, executionDelay, quorum).
dexe_proposal_build_change_voting_settingsWrapper: change voting settings (edit existing or add new)Builds proposal actions; does not broadcast. GovSettings.editSettings(ids, params) when `settingsIds` are supplied, else GovSettings.addSettings(params) — a new settings slot.
dexe_proposal_build_create_staking_tierWrapper: create a staking pool/tier via StakingProposal.createStakingBuilds proposal actions; does not broadcast. StakingProposal.createStaking(rewardToken, rewardAmount, startedAt, deadline, metadata); ERC20 rewards get a prepended approve, isNative sets the action value.
dexe_proposal_build_custom_abiEncode a single ProposalAction from user-supplied ABI fragmentBuilds calldata; does not broadcast. Encodes one ProposalAction {executor, value, data} from a function signature + args, for `actionsOnFor` of dexe_proposal_build_external.
dexe_proposal_build_delegate_to_expertWrapper: delegate DAO treasury stake (tokens + NFTs) to an expertBuilds proposal actions; does not broadcast. GovPool.delegateTreasury(delegatee, amount, nftIds) — the DAO TREASURY's power, not yours; the delegatee must already have expert status (GovPool.getExpertStatus).
dexe_proposal_build_externalPrimitive: build calldata for GovPool.createProposalBuilds calldata; does not broadcast. GovPool.createProposal(descriptionURL, actionsOnFor, actionsOnAgainst), or createProposalAndVote when andVote=true.
dexe_proposal_build_internalPrimitive: build calldata for GovValidators.createInternalProposalDescription is built at runtime.
dexe_proposal_build_manage_validatorsWrapper: change validator balances (add/remove validators via balance tweak)Builds proposal actions; does not broadcast. GovValidators.changeBalances(balances, users) — balance 0 removes a validator, >0 adds or updates.
dexe_proposal_build_modify_dao_profileWrapper: update the DAO descriptionURL (name, avatar, links)Builds proposal actions; does not broadcast. GovPool.editDescriptionURL(url) — upload the new DAO metadata JSON to IPFS first and pass its ipfs://<cid>.
dexe_proposal_build_monthly_withdrawInternal type 2: monthly validator withdrawalBuilds calldata; does not broadcast. `data` for GovValidators.createInternalProposal(type=2) — monthlyWithdraw(tokens, amounts, destination).
dexe_proposal_build_new_proposal_typeWrapper: register a new proposal settings template + bind executorsBuilds proposal actions; does not broadcast. GovSettings.addSettings([newSettings]) + changeExecutors(executors, [newSettingId]); also the path for enabling staking.
dexe_proposal_build_offchainPrimitive: build HTTP request for DeXe off-chain proposal backendBuilds an HTTP request; does not send it. Returns method/url/headers/body for POSTing an off-chain proposal to the DeXe backend — you send it. Backend defaults to api.dexe.io; override with DEXE_BACKEND_API_URL.
dexe_proposal_build_offchain_for_againstOff-chain: binary for/against voting proposal (NOT supported by DeXe backend)Builds an HTTP request; does not send it. DISABLED (F22): the DeXe backend has no for_against creation path and 400s every such request — the web app offers only one_of and multiple_of. Use dexe_proposal_build_offchain_single_option with options ['For','Against']. Kept only to return that guidance.
dexe_proposal_build_offchain_internal_proposalInternal type 3: off-chain proposal (validators attest off-chain result)Builds calldata; does not broadcast. `data` for GovValidators.createInternalProposal(type=3): empty (0x) per contract rule; descriptionURL carries it.
dexe_proposal_build_offchain_multi_optionOff-chain: multi-option voting proposal (pick M of N)Builds an HTTP request; does not send it. POST /integrations/voting/proposals with voting_type='multiple_of' — the voter picks any subset of `voteOptions`. Needs a backend access_token: call dexe_auth_login first.
dexe_proposal_build_offchain_settingsOff-chain: change voting settings or save a new templateBuilds an HTTP request; does not send it. POST /integrations/voting/proposals with attributes.type='edit_proposal_type' (change the DAO-wide off-chain settings) or 'create_proposal_type' (save a reusable template). Needs a backend access_token: call dexe_auth_login first.
dexe_proposal_build_offchain_single_optionOff-chain: single-option voting proposal (pick one of N)Builds an HTTP request; does not send it. POST /integrations/voting/proposals with voting_type='one_of' — the voter picks exactly one of `voteOptions`. Needs a backend access_token: call dexe_auth_login first.
dexe_proposal_build_remove_expertWrapper: burn an Expert NFT (revoke expert role)Builds proposal actions; does not broadcast. ExpertNft.burn(nominatedUser); scope 'local' = the DAO's ExpertNft, 'global' = DeXeExpertNft.
dexe_proposal_build_revoke_from_expertWrapper: revoke delegation from an expert (undelegateTreasury)Builds proposal actions; does not broadcast. GovPool.undelegateTreasury(delegatee, amount, nftIds) — pulls back power delegated from the DAO TREASURY, not yours.
dexe_proposal_build_reward_multiplierWrapper: manage the DAO's reward-multiplier NFT contractBuilds proposal actions; does not broadcast. set_address sets GovPool.setNftMultiplierAddress (ZERO disables); the other modes call ERC721Multiplier.setTokenURI / mint(to, multiplier, duration, uri_) / changeToken. Mint is onlyOwner: pass `govPool` so a contract the GovPool does not own is refused up-front.
dexe_proposal_build_token_distributionWrapper: batch token distribution via DistributionProposalBuilds proposal actions; does not broadcast. DistributionProposal.execute(proposalId, token, amount); ERC20 gets a prepended approve, isNative sets the action value.
dexe_proposal_build_token_saleWrapper: launch a token-sale tier via TokenSaleProposal.createTiersBuilds proposal actions; does not broadcast. Single-tier TokenSaleProposal.createTiers. Multi-tier or merkle whitelists: dexe_proposal_build_token_sale_multi.
dexe_proposal_build_token_sale_multiBuild a multi-tier Token Sale proposal (createTiers + optional addToWhitelist)Builds proposal actions; does not broadcast. TokenSaleProposal.createTiers for one or more tiers, each with zero or more participation requirements. ERC20 approves are summed per sale token; plain Whitelist tiers with users also get addToWhitelist.
dexe_proposal_build_token_sale_recoverWrapper: recover unsold tokens from token-sale tiersBuilds proposal actions; does not broadcast. TokenSaleProposal.recover(tierIds) for unsold tokens. Or skip this tool: dexe_proposal_create with proposalType:'token_sale_recover' and params {tokenSaleProposal, tierIds}.
dexe_proposal_build_token_sale_whitelistBuild an addToWhitelist proposal for existing token-sale tiersBuilds proposal actions; does not broadcast. TokenSaleProposal.addToWhitelist([{tierId, users, uri}, ...]) extends a live tier. Plain Whitelist tiers only; merkle tiers are gated by their root.
dexe_proposal_build_token_transferWrapper: build a 'Token Transfer' proposal (treasury → recipient)Builds proposal actions; does not broadcast. ERC20.transfer(recipient, amount), or a native value transfer when isNative=true. When an RPC is reachable for the target chain (the built-in public RPC counts) and the token is ERC20Gov, the recipient is checked against isBlacklisted; build aborts if blacklisted.
dexe_proposal_build_withdraw_treasuryWrapper: withdraw ERC20/ERC721 from the DAO treasuryBuilds proposal actions; does not broadcast. One ERC20.transfer per token and/or one ERC721.transferFrom(govPool → receiver) per NFT. When an RPC is reachable for the target chain (the built-in public RPC counts) and `token` is ERC20Gov, the receiver is checked against isBlacklisted; build aborts if blacklisted.
dexe_proposal_catalogList every proposal type DeXe supportsRead-only, local. Every proposal type DeXe supports (external, internal validator, off-chain) with target, IPFS-metadata need, gating and builder tool.
dexe_proposal_createBroadcasts when a signer is configured. Creates ANY governance proposal in ONE call: runs approve→deposit→createProposalAndVote and uploads correct IPFS metadata (category/isMeta/changes). Without a signer it returns ordered TxPayloads + a WalletConnect QR.\nPass `proposalType` — the enum lists every wired type — with its inputs in `params`:\n• 'custom': your own actionsOnFor [{executor,value,data}]. 'modify_dao_profile' reads the top-level newDaoName/newDaoDescription/newWebsiteUrl/newSocialLinks/newAvatarPath fields, not `params`.\n• External: token_transfer {token,recipient,amount,isNative?…
dexe_proposal_forecastForecast proposal pass rate and quorumRead-only. Reads the latest 10 proposals on a DAO and their final states and forecasts the pass-rate over DECIDED proposals (still-voting ones are `pending`, never failures), with the average For-vote weight. `quorum.requiredWeight` is an ABSOLUTE vote weight (getTotalPower x quorum / 1e27), not the 1e25 percentage setting. The history cross-check needs a pools subgraph for the chain being forecast; a chain with none is forecast on-chain only (`subgraphHistory: null`, `subgraphNote` says why) — never from another chain's index. `indexedChainId` reports whose index was used (null = none).
dexe_proposal_listList proposals on a GovPoolRead-only. Calls `GovPool.getProposals(offset, limit)` and adds quorum progress per proposal. Quorum is per-side — either For or Against clearing the target reaches it; `requiredQuorum` is an ABSOLUTE vote weight, not a percentage.
dexe_proposal_risk_assessAnalyze treasury risk of a proposalRead-only. Assesses low-quorum treasury risk and privileged no-value governance calls (blacklist, pause, changeVotePower, add/editSettings, changeExecutors, changeBalances). SAFE means 'no risk of the kinds this tool classifies', never 'this proposal is safe'.
dexe_proposal_stateLive proposal state + required quorumRead-only. Reads `getProposalState`, `getProposalRequiredQuorum` and the proposal's votes in one multicall. `requiredQuorum` is an ABSOLUTE vote weight, not a percentage; quorum is per-side — either For or Against clearing it reaches quorum.
dexe_proposal_vote_and_executeBroadcasts when a signer is configured. The ONE call for 'vote on / pass / execute proposal N': checks proposal state, AUTO-DEPOSITS wallet tokens when voting power is short (approve UserKeeper → deposit → vote, the frontend's bundled shape), and with autoExecute executes once the vote passes. Without a signer it returns ordered TxPayloads + a WalletConnect QR. Unsure of the lifecycle (validator round, locked tokens)? Call dexe_guide (flow:'vote_execute') first.
dexe_proposal_votersVoter list for a proposal (subgraph)Read-only. Paginated voter list for one proposal from the pools subgraph (`proposalInteractions`). `chainId` picks the chain and the reply reports `indexedChainId`; a chain with no pools endpoint errors rather than answering from another index.
dexe_read_dao_expertsList local experts in a DAO (subgraph)Description is built at runtime.
dexe_read_dao_listDiscover and list DAOs (subgraph)Description is built at runtime.
dexe_read_dao_membersList DAO members with voting power (subgraph)Description is built at runtime.
dexe_read_dao_statsDAO TVL + activity stats time seriesRead-only. Time series of DAO stats (tvl_usd, member counts, proposal counts, delegations) from the DeXe tracker. `period` is a human duration like '24 hours', '7 days', '1 months'. Backend-only — mainnets.
dexe_read_delegation_mapDelegation relationships — outgoing or incoming (subgraph)Description is built at runtime.
dexe_read_distribution_statusCheck claimable amounts for distribution proposalsRead-only. Per proposal id, reads `isClaimed(proposalId, voter)` and `getPotentialReward(proposalId, voter)` on a DistributionProposal.
dexe_read_expert_statusExpert + BABT status for a user in a DAORead-only. Reads `GovPool.getExpertStatus(user)` and, when the DAO has a BABT contract, `BABT.balanceOf(user) > 0`.
dexe_read_gov_stateRead aggregate GovPool stateRead-only. Reads `getHelperContracts()` and `getNftContracts()` on a GovPool.
dexe_read_multicallArbitrary batched eth_call via Multicall3Read-only. N independent view calls in one Multicall3 round-trip; each supplies its own ABI signature fragment, target, method and args.
dexe_read_nftsNFTs held by an addressRead-only. NFTs owned by any address via the DeXe backend (Moralis-backed). Backend-only — mainnets, not testnet 97.
dexe_read_privacy_policy_statusCheck privacy policy agreement statusRead-only. Reads `UserRegistry.documentHash()` and `agreed(user)` — the current policy hash and whether the user agreed.
dexe_read_protocol_statsProtocol-wide stats — TVL, proposals, DAOs across chainsRead-only. The app.dexe.io landing numbers: TVL across ALL DAOs (aggregated over `chainIds`), proposals created, DAO count, voting-locked token value, 24h change percents, a TVL series, and optionally the top-N DAOs by TVL. Backend-only — mainnets (1, 56).
dexe_read_settingsDefault + internal proposal settings for a DAORead-only. Reads `GovSettings.getDefaultSettings()` and `getInternalSettings()` for the DAO at `govPool` — quorum, duration, executionDelay, minVotesForCreating/Voting.
dexe_read_staking_infoRead staking tier details and user infoRead-only. Reads `stakingsCount()` and `getActiveStakings()` on a StakingProposal — pass its address, or a `govPool` to resolve it via GovUserKeeper.stakingProposalAddress(). With `user`, also reads `getUserInfo(user)`.
dexe_read_token_holdersTop holders of an ERC20 token (with balances)Read-only. Holders + raw balances for any ERC20 from the DeXe backend, balance desc, one page per call (see `pageToken`). Mainnets only (1, 56).
dexe_read_token_sale_positionToken sale position for a walletRead-only. Tier params + user state across N tiers: purchasable status, claimable amount, vesting withdrawable, lockup ETA, totalSold, merkle root. `whitelists` adds the user's proof, making `canParticipate` accurate for gated tiers.
dexe_read_token_sale_tiersRead token sale tier detailsRead-only. Reads `latestTierId()` and `getTierViews(offset, limit)` on a TokenSaleProposal.
dexe_read_token_sale_userRead user participation status in token sale tiersRead-only. Reads `getUserViews(user, tierIds)` on a TokenSaleProposal — per-tier purchase status, claimable amounts, vesting info.
dexe_read_token_salesList a DAO's token sale tiersDescription is built at runtime.
dexe_read_treasuryTreasury or wallet balances (native + ERC20, USD)Read-only. Treasury / wallet balances for any address; pass a GovPool address for a DAO treasury. Auto-discovers EVERY token via the DeXe backend with USD prices and a total. Falls back to an on-chain read (chain 97, explicit `tokens`, or a backend failure) — no token discovery there, and it reports `degraded: true`.
dexe_read_user_activityUser transaction history across DAOs (subgraph)Description is built at runtime.
dexe_read_validator_listList validators in a DAO (subgraph)Description is built at runtime.
dexe_read_validatorsValidator count + isValidator lookupRead-only. Reads `validatorsCount()` and optionally `isValidator(candidate)` on the DAO's GovValidators, plus the validators' monthly credit lines (GovPool.getCreditInfo) — an internal monthly_withdraw against an unfunded line reverts.
dexe_safe_infoRead-only. Live Safe state (nonce, threshold, owners, singleton version), the Safe Transaction Service endpoint a propose would POST to, and whether the DEXE_PRIVATE_KEY signer is a Safe owner.
dexe_safe_propose_txBroadcasts when a signer is configured. Queues a tx in the Safe Transaction Service for the owners to co-sign and execute. Takes a TxPayload, reads the Safe's next nonce on-chain (unless `nonce` is given), computes the EIP-712 `safeTxHash`. **dryRun defaults to true and is UNSIGNED** — payload, safeTxHash and POST target only, no signature. dryRun=false signs with the configured signer, which must be a Safe owner (keystore mode: after the owner approves the exact SafeTx — awaiting_approval until then; re-run the same call) and POSTs (api.safe.global needs DEXE_SAFE_API_KEY); sign=true returns …
dexe_sim_buyRead-only. Simulates TokenSaleProposal.buy(tierId, paymentToken, amount, proof). Native path (0x0) sets value = amount; ERC20 path reads allowance and flags `willNeedApprove` when it is below `amount`.
dexe_sim_calldataRead-only. Preflights any tx via eth_call against live state: success / revertReason / gasEstimate, no gas spent. Decodes Error(string) and Panic(uint256) payloads.
dexe_sim_proposalRead-only. Simulates GovPool.execute(proposalId) against live state; refuses unless the proposal is `SucceededFor` (idx 4). Finds a reverting action before you pay gas.
dexe_testRun Hardhat testsRuns locally and writes artifacts. `npx hardhat test` in DEXE_PROTOCOL_PATH; pass/fail counts plus up to 20 failure bodies.
dexe_tx_approval_statusRead-only. Status + landed tx hashes of a keystore approval (`awaiting_approval`). Cannot approve; only the owner can, on the page.
dexe_tx_sendBroadcasts when a signer is configured. Sends the TxPayload fields from any dexe_*_build_* tool and waits for confirmation. Pass `chainId` when several chains are configured, plus the payload's own chainId as `payloadChainId` — a mismatch REFUSES the send. Calldata with a privileged GovUserKeeper accounting selector is refused (hard block, no override).
dexe_tx_statusRead-only. Receipt/status for a submitted tx hash (pending vs not_found). A broadcast timeout is not a failure — the tx may still confirm; re-check here.
dexe_user_inboxPending items for a wallet across DAOsDescription is built at runtime.
dexe_vote_build_cancel_voteCancel your vote on an external proposalBuilds calldata; does not broadcast. `GovPool.cancelVote(proposalId)` — removes your weight from the tally so you can re-vote. This can drop the proposal back below quorum.
dexe_vote_build_claim_micropool_rewardsClaim micropool (delegated) rewardsBuilds calldata; does not broadcast. `GovPool.claimMicropoolRewards(proposalIds, delegator, delegatee)` — the delegator collects their share of the rewards their delegatee's votes earned.
dexe_vote_build_claim_rewardsClaim voter rewards for executed proposalsBuilds calldata; does not broadcast. `GovPool.claimRewards(proposalIds, user)` — claims creation/voting rewards. Reverts "Gov: proposal is not executed" unless every id is executed, and "Gov: rewards are off" when that settings slot has no reward token. Pass proposalId 0 to sweep the off-chain reward balance.
dexe_vote_build_delegateDelegate YOUR staked voting power to a delegateeBuilds calldata; does not broadcast. Emits `GovPool.multicall([delegate(delegatee, amount, nftIds)])` — the single-element multicall the frontend sends, because SphereX-protected pools revert a raw top-level delegate(). Delegates YOUR staked power; for DAO treasury delegation use dexe_proposal_build_delegate_to_expert (needs DEXE_TOOLSETS=core,proposals).
dexe_vote_build_depositStake tokens/NFTs into a DAO to gain voting powerBuilds calldata; does not broadcast. `GovPool.deposit(amount, nftIds)` — stakes into the DAO to gain voting power. Payable: native-coin DAOs pass `value`; ERC20 DAOs pass value=0 and need the GovUserKeeper approve first.
dexe_vote_build_distribution_claimClaim share from distribution proposalsBuilds calldata; does not broadcast. `DistributionProposal.claim(voter, proposalIds)` — the voter's proportional share of executed distribution proposals.
dexe_vote_build_erc20_approveBuild ERC20.approve(spender, amount) calldataBuilds calldata; does not broadcast. `ERC20.approve(spender, amount)`. Run it before dexe_vote_build_deposit when staking an ERC20: approve the DAO's GovUserKeeper (dexe_dao_info), never the GovPool. Native-coin staking needs no approve — pass `value` on deposit instead.
dexe_vote_build_executeExecute a passed proposalBuilds calldata; does not broadcast. `GovPool.execute(proposalId)`; scope:'internal' + govValidators builds `GovValidators.executeInternalProposal(proposalId)` (anyone may send once Succeeded). When an action calls GovSettings.addSettings the response carries an advisory naming the chains where the proposal passes the vote and then reverts here — read it before signing.
dexe_vote_build_move_to_validatorsEscalate a passing proposal to the validators tierBuilds calldata; does not broadcast. `GovPool.moveProposalToValidators(proposalId)` — hands a passed proposal to the validator chamber. Only valid in state WaitingForVotingTransfer, and only a BABT holder may send it when the DAO sets onlyBABTHolders.
dexe_vote_build_multicallAtomic multicall on GovPool (batch multiple writes in one tx)Builds calldata; does not broadcast. `GovPool.multicall(calls)` — wraps N inner calldatas. Pass the `data` fields of other build tools (deposit + delegate, execute + claim). Every inner call runs against GovPool itself, so only GovPool methods belong here.
dexe_vote_build_nft_multiplier_lockLock an NFT multiplier to boost voting powerBuilds calldata; does not broadcast. `ERC721Multiplier.lock(tokenId)` — applies the reward-multiplier NFT's bonus to your voting power.
dexe_vote_build_nft_multiplier_unlockUnlock the NFT multiplier to reclaim itBuilds calldata; does not broadcast. `ERC721Multiplier.unlock()` — returns the locked NFT and removes its voting-power bonus.
dexe_vote_build_privacy_policy_agreeSubmit privacy policy agreement signature on-chainBuilds calldata; does not broadcast. `UserRegistry.agreeToPrivacyPolicy(signature)` — pass the EIP712 signature from dexe_vote_build_privacy_policy_sign. With `profileURL` it calls changeProfileAndAgreeToPrivacyPolicy instead.
dexe_vote_build_privacy_policy_signBuild EIP712 typed data for privacy policy agreementRead-only, local. Returns the EIP712 typed data to sign before `agreeToPrivacyPolicy`. Sign it with the wallet's signTypedData, then pass the signature to dexe_vote_build_privacy_policy_agree. One-time per user, not per DAO.
dexe_vote_build_staking_claimClaim staking rewards from a tierBuilds calldata; does not broadcast. `StakingProposal.claim(id)` — claims a tier's accumulated rewards without unstaking.
dexe_vote_build_staking_claim_allClaim all staking rewards across all tiersBuilds calldata; does not broadcast. `StakingProposal.claimAll()` — claims rewards from every active tier in one tx.
dexe_vote_build_staking_reclaimUnstake (reclaim) tokens from a staking tierBuilds calldata; does not broadcast. `StakingProposal.reclaim(id)` — withdraws the staked tokens and any pending rewards from a tier.
dexe_vote_build_staking_stakeStake tokens in a staking tierBuilds calldata; does not broadcast. `GovUserKeeper.stakeTokens(tierId, amount)` — stakes into a tier to earn rewards. Target is GovUserKeeper, not StakingProposal.
dexe_vote_build_token_sale_buyBuy tokens from a token sale tierBuilds calldata; does not broadcast. `TokenSaleProposal.buy(tierId, tokenToBuyWith, amount, proof)`. For native-coin purchases pass ETHEREUM_ADDRESS (0xEeee…EEeE) as `tokenToBuyWith`; `value` is auto-set to `amount` when left at 0 (the contract requires msg.value == amount). Whitelisted tiers need the Merkle `proof`.
dexe_vote_build_token_sale_claimClaim purchased tokens from token sale tiersBuilds calldata; does not broadcast. `TokenSaleProposal.claim(tierIds)`. Call after the tier's claim lock duration has passed.
dexe_vote_build_token_sale_vesting_withdrawWithdraw vested tokens from token sale tiersBuilds calldata; does not broadcast. `TokenSaleProposal.vestingWithdraw(tierIds)` — withdraws the unlocked portion of a vesting tier. The on-chain firewall refuses this call in every shape on current pools, stranding the vested allocation; the payload is still returned (older pools work) with the defect reported alongside it.
dexe_vote_build_undelegateUndelegate voting power from a delegateeBuilds calldata; does not broadcast. `GovPool.undelegate(delegatee, amount, nftIds)` — pulls back power you delegated. The delegatee's live votes are recomputed downward, and a delegate and an undelegate in the same block revert. On chain 97 it reverts while the delegatee has votes on record; the reply then carries the unlock call to send first.
dexe_vote_build_validator_cancel_voteValidator: cancel your vote on internal/external proposalBuilds calldata; does not broadcast. `GovValidators.cancelVote{Internal,External}Proposal(proposalId)`. The on-chain firewall refuses this call on fresh (SphereX-era) pools and GovValidators has no multicall to wrap it in, so there is no workaround — an upstream defect, reported with every payload.
dexe_vote_build_validator_voteValidator vote on internal or external proposalBuilds calldata; does not broadcast. `GovValidators.vote{Internal,External}Proposal(proposalId, amount, isVoteFor)`. Arg order differs from GovPool.vote — amount comes before isVoteFor. Requires validator stake.
dexe_vote_build_voteVote on an external proposalBuilds calldata; does not broadcast. Emits `GovPool.multicall([vote(proposalId, isVoteFor, amount, nftIds)])` — the single-element multicall the frontend sends, because SphereX-protected pools revert a raw top-level vote(). Needs staked or delegated power first (dexe_vote_build_deposit).
dexe_vote_build_withdrawUnstake tokens/NFTs from a DAOBuilds calldata; does not broadcast. `GovPool.withdraw(receiver, amount, nftIds)` — unstakes deposited governance tokens. Tokens you voted with stay locked until that proposal is executed.
dexe_vote_get_votesUser's votes on a specific proposalRead-only. Reads `GovPool.getUserVotes(proposalId, voter, voteType)` and returns the VoteInfoView. Defaults to PersonalVote.
dexe_vote_user_powerUser staking + delegation power across VoteTypesRead-only. Reads `tokenBalance` and `nftBalance` on GovUserKeeper for every VoteType (Personal/Micropool/Delegated/Treasury) in one multicall. tokenBalance includes the un-deposited wallet balance; deposited power = tokenBalance - tokenOwned.
dexe_wc_connectWrites to a remote service. Starts a WalletConnect session and renders a scannable QR (ASCII + PNG). RECOMMENDED signer — the phone signs and broadcasts, so no private key touches this machine. Poll dexe_wc_status until `connected`. In DEXE_SIGNER_MODE=unattended a hot key signs instead.
dexe_wc_disconnectWrites to a remote service. Tears down the active WalletConnect session; safe when not connected.
dexe_wc_statusRead-only. WalletConnect config plus live session state (connected?, account, chain, topic, peer wallet, last error). It dispatches transactions in DEXE_SIGNER_MODE=walletconnect (the default).
dexe_write_contextRead-only. Write posture for this session — the signer mode + address (WalletConnect, keystore, hot key or none), the agent KEYRING (signerKey, address, gas, 24h broadcasts per persona), Pinata / WalletConnect / Safe readiness, the signer's deposited power in the newest recorded DAO, and a write journey a prior session left unfinished. Chains, env readiness and recorded DAOs are dexe_context.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 13, 2026 (16 days ago)
- Last release
- Oct 13, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.edward-arinin-web-dev/dexe-mcp- Version
- 0.37.1
- Auth
- No auth
- Packages
- npm dexe-mcp
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
DeXe DAO governance MCP server. Agent Mart. https://agentmart.dev/connectors/edward-arinin-web-dev-dexe-mcp (last updated 2026-10-24)