Skip to main content

Get proposal info

Intermediate
Tutorial

This endpoint allows you to fetch more detailed information about a specific proposal from the NNS. It is the implementation of the /call endpoint of the Rosetta API standard. The call endpoint is very flexible as to what it can be used for. In the case of ICP Rosetta it is used to fetch various custom information that is not covered by the Rosetta API standard.

Prerequisites

  • Your Rosetta instance is up and running under the address 0.0.0.0:8081.

Make sure to use the correct NetworkIdentifier as described in this section. It is a direct call to the get_proposal_info endpoint of the governance canister.

This call requires Rosetta to make an online call, so make sure that Rosetta is connected to the internet.

Example

For the arbitrarily chosen proposal 127049 the request would resemble the following:

curl --location '0.0.0.0:8081/call'  --header 'Content-Type: application/json' --data '{
"network_identifier": {
"blockchain":"Internet Computer",
"network":"00000000000000020101"
},
"method_name": "get_proposal_info",
"parameters": {
"proposal_id": 127049
}
}'

The response gives you detailed information about the current state of the proposal.

{
"result": {
"ballots": {
"14315117116521128082": {
"vote": 1,
"voting_power": 194302072
}
},
"deadline_timestamp_seconds": 1705677983,
"decided_timestamp_seconds": 1705574372,
"derived_proposal_information": null,
"executed_timestamp_seconds": 1705574372,
"failed_timestamp_seconds": 0,
"failure_reason": null,
"id": {
"id": 127049
},
"latest_tally": {
"no": 22366231454553,
"timestamp_seconds": 1705574372,
"total": 46153787418737556,
"yes": 45931044100020061
},
"proposal": {
"action": {
"ExecuteNnsFunction": {
"nns_function": 31,
"payload": [
68,
73,
68,
76,
2,
108,
3,
221,
217,
155,
135,
3,
1,
189,
134,
157,
139,
4,
104,
136,
254,
159,
200,
13,
1,
109,
104,
1,
0,
2,
1,
29,
192,
197,
253,
217,
205,
254,
199,
112,
105,
186,
150,
168,
234,
251,
182,
142,
187,
238,
221,
135,
38,
176,
97,
192,
253,
118,
190,
211,
2,
1,
29,
100,
98,
50,
110,
148,
84,
150,
147,
157,
195,
102,
99,
15,
150,
48,
232,
54,
83,
160,
194,
49,
252,
216,
236,
129,
56,
250,
237,
2,
1,
29,
18,
121,
14,
118,
97,
252,
205,
61,
79,
200,
49,
56,
220,
175,
253,
159,
24,
142,
134,
123,
69,
174,
16,
200,
131,
109,
208,
184,
2,
2,
1,
29,
34,
107,
89,
103,
74,
148,
137,
44,
182,
109,
248,
191,
158,
197,
193,
116,
233,
105,
88,
39,
11,
53,
175,
180,
230,
17,
76,
76,
2,
1,
29,
137,
101,
36,
181,
86,
42,
173,
156,
56,
65,
68,
44,
75,
253,
202,
146,
245,
196,
212,
107,
140,
94,
21,
208,
145,
121,
47,
24,
2
]
}
},
"summary": "# Replace nodes in subnet opn46\n\nMotivation: replacing 2 nodes to improve subnet decentralization",
"title": "Replace nodes in subnet opn46",
"url": ""
},
"proposal_timestamp_seconds": 1705332383,
"proposer": {
"id": 40
},
"reject_cost_e8s": 1000000000,
"reward_event_round": 0,
"reward_status": 1,
"status": 4,
"topic": 7
}
}