If you're a project that wants stable liquidity in your token, Vota can be a cheaper way of acquiring it than doing liquidity mining or buying SBR and locking it for veSBR.
Currently, the only way to buy gauge votes is programmatically. Here's a sample vote buy in TypeScript:
Copy import GAUGE_IDL from "./idls/gauge.json" ;
import VOTE_MARKET_IDL from "./idls/vote_market.json" ;
import {Gauge} from "./types/gauge" ;
import {VoteMarket} from "./types/vote_market" ;
const GAUGE_PROGRAM_ID = new PublicKey ( "GaugesLJrnVjNNWLReiw3Q7xQhycSBRgeHGTMDUaX231" );
const LOCKED_VOTER_PROGRAM_ID = new PublicKey ( "LocktDzaV1W2Bm9DeZeiyz4J9zs4fRqNiYqQyracRXw" );
const VOTE_MARKET_PROGRAM_ID = new PublicKey ( "VotetDzaV1W2Bm9DeZeiyz4J9zs4fRqNiYqQyracRXw" );
const gaugemeister = new PublicKey ( "28ZDtf6d2wsYhBvabTxUHTRT6MDxqjmqR7RMCp348tyU" );
const voteMarketProgram = new Program ( VOTE_MARKET_IDL as any , GAUGE_PROGRAM_ID ) as Program < Gauge >;
const gaugeProgram = new Program ( GAUGE_IDL as any , GAUGE_PROGRAM_ID ) as Program < Gauge >;
const mint = new PublicKey ( ... );
const config = new PublicKey ( ... );
const gauge = new PublicKey ( ... );
const [ allowedMints , _ ] = PublicKey .findProgramAddressSync (
[ Buffer .from ( "allow-list" ) , config . publicKey .toBuffer ()] ,
voteMarketProgram .programId
);
const gaugeMeisterData = await gaugeProgram . account . gaugemeister .fetch (gaugemeister);
const epochBuffer = Buffer .alloc ( 4 );
epochBuffer .writeUInt32LE ( gaugeMeisterData .currentRewardsEpoch + 1 );
const [ voteBuy , bump ] = PublicKey .findProgramAddressSync (
[ Buffer .from ( "vote-buy" ) , epochBuffer , config . publicKey .toBuffer () , GAUGE .toBuffer ()] ,
program .programId
);
const tokenVault = getAssociatedTokenAddressSync (mint , voteBuy , true );
await program . methods .increaseVoteBuy ( gaugeMeisterData .currentRewardsEpoch + 1 , new BN ( 1_000_000 ))
.accounts ({
buyer : program . provider .publicKey ,
buyerTokenAccount : getAssociatedTokenAddressSync (mint , program . provider .publicKey) ,
tokenVault ,
mint ,
config ,
gaugemeister ,
voteBuy ,
gauge ,
allowedMints ,
}) .rpc ();
You are encouraged to reach out in MetaDAO's Discord if you plan to buy votes so that we can assist you!