Skip to content

list_proposals

For issuers: list multisig proposals on a managed company, sorted most recent first. Each row describes the proposal in enough detail to reason about its status and decide whether to sign it.

Requires sign-in and issuer access to the requested company. Call list_managed_companies first to get a valid companyId.

FieldTypeRequiredDescription
companyintegerYesCompany id of a company the signed-in user is authorized to manage.
statestringNoFilter by state: pending, signed, or failed. Omit to list across all states.
pageNumberintegerNoZero-based page index. Default 0 (most recent page).
pageSizeintegerNoProposals per page. Default 10, maximum 100. Raise only when the user asks for more.

A summary envelope with pagination metadata and the proposals on the requested page:

FieldTypeDescription
companyIdintegerThe company id the proposals belong to.
statestringState filter applied, if any. Omitted when listing across all states.
pageNumberintegerZero-based page index.
pageSizeintegerPage size used for the request.
totalElementsintegerTotal number of proposals matching the filter.
totalPagesintegerTotal number of pages at the requested page size.
itemsarrayProposals on this page.

Each proposal in items contains:

FieldTypeDescription
idintegerProposal id — required input for sign_proposal.
noncestringAccount nonce reserved for this proposal (decimal string). Required when signing.
gasPricenumberGas price locked in for this proposal (wei). Required when signing.
creationTimestampstringISO timestamp the proposal was created.
executionDatetimestringISO timestamp the proposal was executed on-chain. Absent while the proposal is pending or has failed.
declarationstringSolidity-style method signature being called, e.g. setPaymentHub(address hub).
titlestringShort human-readable title.
messagestringFuller human-readable description of what the proposal does.
toAddressstringContract address the proposal would call.
hexDatastringABI-encoded call data (hex). Not directly user-readable; encodes the decoded parameters of the transaction.
hashstringOn-chain transaction hash. Present only once the proposal has executed.
signedByarraySigners who have already signed, as { name } objects.
youHaveSignedbooleanWhether the signed-in user has already signed this proposal.
initiatorNamestringName of the person who created the proposal.
statestringpending · signed · failed.
errorMessagestringBackend-reported failure reason. Present only when state is failed.

Other fields from the backend’s verbose trans block (gas limit, value, from address, block number, etc.) and the proposal’s labels / children / chain are stripped by the adapter and never reach the model context.

  • “List my company’s pending multisig proposals.”
  • “Show the most recent signed proposals for company 42.”
  • “Which pending proposals on my company have I not yet signed?”
  • “Did the last proposal succeed or fail?”
  • Always call list_managed_companies first — passing a company id the user is not authorized for returns 403.
  • Use state: 'pending' when the user asks “what needs signing?” — it returns only proposals awaiting more signatures or execution.
  • The youHaveSigned flag is the canonical way to know whether the signed-in user still needs to sign a given proposal. Do not infer from signedBy alone.
  • A 404 means the company does not exist; re-run list_managed_companies. A 401 means the session expired; call sign_in and retry.