This method only works while the proposal is active
Path Parameters
proposal_id
string
REQUIRED
Loading...
voter
string
REQUIRED
Loading...
Returns
vote
object
Loading...
proposal_id
string
Loading...
voter
string
Loading...
option
string
Loading...
metadata
string
Loading...
options
array
Loading...
option
string
Loading...
weight
string
Loading...
Request
1curl --location 'https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}'
1curl --location 'https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}'
1package main23import (4"context"5"crypto/tls"6"encoding/json"7"fmt"8"log"9"os"10"time"1112gov "cosmossdk.io/api/cosmos/gov/v1"13"google.golang.org/grpc"14"google.golang.org/grpc/credentials"15"google.golang.org/grpc/status"16)1718var token = "YOUR_TOKEN"19var endpoint = "YOUR_ENDPOINT:9090"2021type auth struct {22token string23}2425func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {26if a.token == "" || a.token == "YOUR_TOKEN" {27return map[string]string{}, nil28}29return map[string]string{"x-token": a.token}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33return false34}3536func main() {37var proposalId uint64 = 0 // Replace with actual proposal_id38voter := "{voter}" // Replace with actual voter address3940if ep := os.Getenv("QN_GRPC_ENDPOINT"); ep != "" {41endpoint = ep42}43if t := os.Getenv("QN_TOKEN"); t != "" {44token = t45}46if p := os.Getenv("GOV_PROPOSAL_ID"); p != "" {47var parsed uint6448if _, err := fmt.Sscan(p, &parsed); err != nil {49log.Fatalf("invalid GOV_PROPOSAL_ID: %v", err)50}51proposalId = parsed52}53if v := os.Getenv("GOV_VOTER"); v != "" {54voter = v55}56if proposalId == 0 {57log.Fatal("replace proposal_id")58}59if voter == "" || voter == "{voter}" {60log.Fatal("replace voter address")61}6263opts := []grpc.DialOption{64grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),65grpc.WithPerRPCCredentials(&auth{token}),66}6768conn, err := grpc.Dial(endpoint, opts...)69if err != nil {70log.Fatalf("failed to connect to gRPC server: %v", err)71}72defer conn.Close()7374client := gov.NewQueryClient(conn)7576ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)77defer cancel()7879resp, err := client.Vote(ctx, &gov.QueryVoteRequest{80ProposalId: proposalId,81Voter: voter,82})83if err != nil {84if st, ok := status.FromError(err); ok {85log.Fatalf("Vote query failed: %s", st.Message())86}87log.Fatalf("Vote query failed: %v", err)88}8990jsonData, err := json.MarshalIndent(resp, "", " ")91if err != nil {92log.Fatalf("failed to encode response: %v", err)93}94fmt.Println(string(jsonData))95}96
1package main23import (4"context"5"crypto/tls"6"encoding/json"7"fmt"8"log"9"os"10"time"1112gov "cosmossdk.io/api/cosmos/gov/v1"13"google.golang.org/grpc"14"google.golang.org/grpc/credentials"15"google.golang.org/grpc/status"16)1718var token = "YOUR_TOKEN"19var endpoint = "YOUR_ENDPOINT:9090"2021type auth struct {22token string23}2425func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {26if a.token == "" || a.token == "YOUR_TOKEN" {27return map[string]string{}, nil28}29return map[string]string{"x-token": a.token}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33return false34}3536func main() {37var proposalId uint64 = 0 // Replace with actual proposal_id38voter := "{voter}" // Replace with actual voter address3940if ep := os.Getenv("QN_GRPC_ENDPOINT"); ep != "" {41endpoint = ep42}43if t := os.Getenv("QN_TOKEN"); t != "" {44token = t45}46if p := os.Getenv("GOV_PROPOSAL_ID"); p != "" {47var parsed uint6448if _, err := fmt.Sscan(p, &parsed); err != nil {49log.Fatalf("invalid GOV_PROPOSAL_ID: %v", err)50}51proposalId = parsed52}53if v := os.Getenv("GOV_VOTER"); v != "" {54voter = v55}56if proposalId == 0 {57log.Fatal("replace proposal_id")58}59if voter == "" || voter == "{voter}" {60log.Fatal("replace voter address")61}6263opts := []grpc.DialOption{64grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),65grpc.WithPerRPCCredentials(&auth{token}),66}6768conn, err := grpc.Dial(endpoint, opts...)69if err != nil {70log.Fatalf("failed to connect to gRPC server: %v", err)71}72defer conn.Close()7374client := gov.NewQueryClient(conn)7576ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)77defer cancel()7879resp, err := client.Vote(ctx, &gov.QueryVoteRequest{80ProposalId: proposalId,81Voter: voter,82})83if err != nil {84if st, ok := status.FromError(err); ok {85log.Fatalf("Vote query failed: %s", st.Message())86}87log.Fatalf("Vote query failed: %v", err)88}8990jsonData, err := json.MarshalIndent(resp, "", " ")91if err != nil {92log.Fatalf("failed to encode response: %v", err)93}94fmt.Println(string(jsonData))95}96
1const myHeaders = new Headers();2myHeaders.append("Accept", "*/*");34const requestOptions = {5method: "GET",6headers: myHeaders,7redirect: "follow"8};910fetch("https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}", requestOptions)11.then((response) => response.text())12.then((result) => console.log(result))13.catch((error) => console.error(error));
1const myHeaders = new Headers();2myHeaders.append("Accept", "*/*");34const requestOptions = {5method: "GET",6headers: myHeaders,7redirect: "follow"8};910fetch("https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}", requestOptions)11.then((response) => response.text())12.then((result) => console.log(result))13.catch((error) => console.error(error));
1import requests23url = "https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}"45payload = {}6headers = {7'Accept': '*/*'8}910response = requests.request("GET", url, headers=headers, data=payload)1112print(response.text)13
1import requests23url = "https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}"45payload = {}6headers = {7'Accept': '*/*'8}910response = requests.request("GET", url, headers=headers, data=payload)1112print(response.text)13
1require "uri"2require "net/http"34url = URI("https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}")56https = Net::HTTP.new(url.host, url.port)7https.use_ssl = true89request = Net::HTTP::Get.new(url)10request["Accept"] = "*/*"1112response = https.request(request)13puts response.read_body14
1require "uri"2require "net/http"34url = URI("https://docs-demo.celestia-mainnet.quiknode.pro/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}")56https = Net::HTTP.new(url.host, url.port)7https.use_ssl = true89request = Net::HTTP::Get.new(url)10request["Accept"] = "*/*"1112response = https.request(request)13puts response.read_body14
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free