Skip to main content
GET
/
accounts
/
{address}
/
proposals
/
{proposal_address}
Get a specific proposal
curl --request GET \
  --url https://grid.squads.xyz/api/grid/v1/accounts/{address}/proposals/{proposal_address} \
  --header 'Authorization: Bearer <token>' \
  --header 'x-grid-environment: <x-grid-environment>'
{
  "data": {
    "approved": [
      "<string>"
    ],
    "cancelled": [
      "<string>"
    ],
    "consensusAccount": "<string>",
    "consensusAccountType": "<string>",
    "proposalAddress": "<string>",
    "rejected": [
      "<string>"
    ],
    "status": "<string>",
    "statusTimestamp": 123,
    "blockTime": "2023-11-07T05:31:56Z",
    "lastModifiedSignature": "<string>",
    "mainAccountAddress": "<string>",
    "settingsAddress": "<string>",
    "transactionIndex": 123
  },
  "metadata": {
    "request_id": "<string>",
    "timestamp": "2023-11-07T05:31:56Z"
  }
}
Retrieves detailed information about a specific proposal, including current status, voting state, and metadata.
The {address} parameter is your smart account address, and {proposal_address} is the specific proposal’s on-chain address from Create Proposal or List Proposals.

Ownership Verification

The API verifies that the proposal belongs to the specified smart account. Requesting a proposal with the wrong account address returns 403 Forbidden.

Understanding Voting State

The response includes approved, rejected, and cancelled arrays showing which signers have voted:
const proposal = await grid.getProposal(accountAddress, proposalAddress);

// Calculate remaining votes needed
const votesNeeded = account.threshold - proposal.approved.length;

// Check if specific signer has voted
const hasVoted = proposal.approved.includes(signerAddress) ||
                 proposal.rejected.includes(signerAddress);

Authorizations

Authorization
string
header
required

Your Grid API key from the Grid Dashboard

Headers

x-grid-environment
string
required

Target Solana environment

Path Parameters

address
string
required

Smart account address

proposal_address
string
required

Proposal address

Response

Proposal retrieved successfully

data
object
required

Shared response structure for proposal endpoints

metadata
object
required