GraviFi

Every market, in one orbit.

Whitepaper · November 2026 · gravifi.xyz · app.gravifi.xyz · @gravifiXYZ


Abstract

GraviFi turns a mix of tokenized stocks, crypto and memecoins into a single token. Each basket is a vault on Solana that holds its tokens and issues one share token for them. A share is always worth its exact slice of what the vault holds, and can always be swapped back for that slice. Anyone can buy a basket with USDC or SOL, or build one from 142 GraviFi Verified assets or any other Solana token that passes the listing check. Every basket mint and redeem pays a 0.40% protocol fee (0.80% on a Smart basket); half of it buys GRAVI on the open market and burns it. Creating a basket burns GRAVI too. GRAVI stakers share 10% of the protocol fee, paid in SOL, and each 5,000,000 GRAVI staked makes one basket a day without burning. A basket's holders can also run it themselves, by vote, and a Smart basket is reviewed every day within limits the program enforces.

GraviFi has been live on Solana mainnet since 14 October 2026.


1. The problem

Tokenized stocks, pre-IPO tokens, crypto and memecoins now trade side by side on Solana, but holding a spread of them is still manual: a dozen swaps to buy in, a dozen to rebalance, a dozen to get out, and a wallet full of positions to track. Traditional index funds solve this off-chain, behind a broker, a custodian and a fund manager, and they can't hold a memecoin or a token that isn't listed on an exchange.

GraviFi does it on-chain: one token for the whole spread, held in your own wallet, with the rules written into the program rather than into a prospectus.

2. Baskets

A basket is three things:

2.1 Minting and redeeming

Minting deposits the exact underlying tokens for a number of shares and receives those shares, less the protocol fee. Redeeming hands shares back and receives each token's exact slice, also less the fee. No price is involved in either: the vault swaps units for units, so a share can never be issued for less than it is worth, or paid out for more.

Both are priced from what the vault holds at that moment, not from a figure stored earlier, so tokens that reach a vault any other way (an airdrop, a donation, a token a redeemer left behind) belong to the holders already there: nobody can mint into them at the old price.

The vault always rounds in its own favour: deposits round up, payouts round down. Every token a share promises is in the vault.

2.2 Redemption is always open

Redeeming is never gated: not by a basket's access mode, not by its creator, not by a delisting, not by the team. If the issuer of one token pauses or freezes it, a holder can leave that one token behind and take everything else; what they leave stays with the remaining holders. A holder who cannot redeem holds a promise, not a claim, so GraviFi is built so that this never happens.

2.3 Buying and selling with USDC or SOL

Nobody needs to hold the underlying tokens first. The app turns a payment into a mint:

  1. Swaps. The payment is split by each token's weight and swapped through Jupiter into the buyer's own wallet. Each swap carries a price limit.
  2. Mint. The vault takes what the swaps delivered and mints the shares it covers. If a swap misses its limit, nothing is minted, and the app offers to swap back what landed.

Selling runs the other way: redeem, then swap each token back to USDC or SOL. Or redeem and keep the tokens. Every step is approved in the buyer's wallet, and the full cost is shown before signing.

2.4 Recurring plans, stop losses and take profits

A holder can set up recurring buys or sells of a basket (daily to monthly, up to $10,000 a plan), and stop losses and take profits on any basket or token they hold: fixed or trailing, one or two levels on each side, sold at the market as soon as a level is reached, with confirmation at once or after 1, 5 or 15 minutes. These are the holder's own exits, not the creator's stops on a basket's assets (section 4.1).

Each plan and each stop has a wallet of its own, which the holder owns and which holds exactly what it spends or protects. GraviFi can sign for it only through two keys together, the app's and a separate guard's, and the guard co-signs only a fill that is due or a sale of that stop's holding, paid back to the owner's main wallet. The owner's main wallet never gets a signer, and cancelling sends what's left back to it. These have no fee of their own.

3. Creating a basket

Anyone can create a basket in the app:

ChoiceOptions
Assets2 to 14, from the 142 GraviFi Verified or any token that passes the listing check (section 7.1)
WeightsAny split adding up to 100%
RebalancingOn a schedule, when it drifts past a tolerance, or both (at least a day apart, at least 0.5% drift). Rebalancing starts once the basket holds $50 (section 4)
Creator's cut0% to 0.60% of each buy
AccessPublic; allowlist (only wallets the creator approves can mint); or private (only the creator can mint). Anyone holding shares can always redeem
Run byIts creator; Smart (section 3.1); its holders (section 8.1, public baskets only); or nobody: immutable, locked forever
Stop lossesOptional, per asset (section 4.1)
Starting price$1 to $10,000 a share

Creating the basket burns the GRAVI the protocol asks for (section 6.3); the creator then seeds it with at least $20, and its shares go live on the app's explore page. A creator-managed basket can later change its weights, add or remove assets, change its rebalancing policy, stop losses and cut within the caps, and split its shares.

Splits. A creator can split or reverse-split a basket's shares (1:100 to 100:1, at most once every 30 days). Every holder's balance and the price per share change together in one transaction; nobody's slice changes.

The creator's cut is a share of each buy by someone else, paid in shares. Selling and holding don't pay it, so nobody already in can be charged more by a later rise. A creator can lower it at any time. Raising it takes a day's notice once the basket has shares, shown on its page, so no buyer pays more than they were quoted. An immutable basket's is fixed at its first deposit.

The yearly fee is how creators earned before the cut: up to 0.20% a year, streamed as new shares while held. Baskets that have one keep it until their creator chooses a cut, which stops it. A basket has one or the other, never both, and new baskets are only offered the cut.

Handing a basket over. A creator can hand their basket to another wallet at any time. That wallet then holds every power the creator had over it, and receives what the cut and the yearly fee earn, including any cut not yet claimed. Only it can hand the basket on, or back. The basket's address, its shares and its holders don't change, and nothing in its vaults moves.

3.1 Smart baskets

A creator can make a basket Smart when creating it. The creator writes its rules (its mandate, whose hash is stored on chain), and the app reviews the basket against them every day (four times a day for a fast-moving "pump" mandate, weekly after 30 days with no change): a review may add, remove and reweight assets and set the mandate's stops. The changes are made by the app's strategist key, which can do nothing else: not move a token, not change a fee or a limit, not touch another basket.

The program holds every Smart basket to limits: at most 40% of the targets changed in any 24 hours and 100% in any 7 days, at most 35% in one asset and 30% in one that isn't GraviFi Verified (the protocol authority can move them within bounds in the code, after 7 days' notice, section 8.2). A creator can set tighter ones, never looser. A new mandate or new limits wait a day, so holders who disagree can redeem first, and the creator or the guardian can pause the reviews. A Smart basket starts with at least $50.

Its protocol fee is 0.80% per mint and redeem (ceiling 1.00% in the code), split like the normal fee, for the daily reviews. Making a basket Smart burns 50,000 GRAVI once (ceiling 1,000,000), on top of the per-asset burn; assets a review adds later burn nothing.

4. Rebalancing

Prices move, so a basket's actual weights drift from its targets. When a basket's schedule comes round, or it drifts past its tolerance, a keeper trades it back:

The program checks every slice, and the share supply can't change in the middle of one. The floor is only as good as the price it's checked against. A price service posts those prices with its own key, the program's price authority: it reads each price from Jupiter itself, so the app can ask it to post a price but never choose one. The program bounds what it may post. Where an asset has a Pyth feed (about 20 of them today: SOL, ETH, BTC, JUP, BONK, WIF and others), a posted price must be within 3-5% of a fresh, fully verified Pyth price that isn't dated in the future. Any other asset's price may move at most 20% from the last accepted one per hour, so a false price can't appear at once; its very first price only sets that reference, and nothing trades on it until a price posted at least 15 minutes later agrees with it within those 20%. Within those bounds a rebalance can't take value out of a basket as long as the prices posted are honest. Section 8 says who holds that key.

Only baskets holding at least $50. The keeper doesn't rebalance a basket worth less than $50: nothing is traded, not for drift, not on schedule, not even an asset its creator is adding or removing. Its holdings drift with the market until it grows past $50; minting and redeeming work as usual. Below that a slice is a few cents, and hundreds of small baskets would take turns from the real ones. Each basket's page says when it's below the line.

The keeper is paid back, not paid. Running a basket costs the keeper network fees: each slice, the prices posted for it, and once, the basket's rebalance record. Each slice pays it back what it spent on that basket so far, in the token the slice sells, and at most $0.05 a slice, a limit the program enforces. What isn't covered yet waits for the next slice. The keeper sells those tokens for SOL. Holders pay that cost as a sliver of the sold token, and nobody earns anything from it. Sweeps pay back the same way. A buyback run pays the keeper back for all its sales at once, at most $0.50, only out of the burn's budget, and selling the stakers' tokens for SOL works the same way out of theirs.

Taking turns. The keeper runs a few slices an hour, shared by every basket. The baskets that want a slice go in order of how long they've waited since their last one: a basket goes to the back of the queue each time it's served, or when its slice fails. So a volatile basket that's due every hour can't take the turns of the others, and every basket gets one in its turn.

Tokens a basket is sent. Some tokens pay their holders in another token (a stonkfun token can pay ZEC), and anyone can send a basket an airdrop. Those tokens aren't part of the recipe, so the keeper sweeps them: it swaps them into the basket's most underweight token against the same oracle floor, and their value goes to the holders.

A token the market stops pricing. An asset at 0% whose price hasn't been posted for a day counts as worth nothing in the books, so it can't block the rest of the basket. Nothing can be sold or bought at $0, so it stays in the vault and redeeming still pays it out.

4.1 Stop losses

A creator can set a stop loss on any of a basket's assets: a percentage, 5% to 90%, below a reference price. A fixed stop's reference is the asset's price when the stop was set ("down 30% from now"); a trailing stop's reference rises with higher prices that have held (the asset's guard reference, section 4, at least 5 minutes old), so it sits below the asset's highest lasting price since; one high print doesn't lift it. On a basket with holders a reference can't be above the asset's posted price when the stop is written, so no stop starts out triggered. The stops are stored on chain, where anyone can read them.

If the asset's posted price is below its stop, the stop arms; if it's still below 5 to 15 minutes later, it fires. An arming nobody confirmed within 15 minutes starts over. The program checks both prices (each fresh, within the bounds of section 4) and the time between them, and anyone may ask it to: the keeper does every minute. A price back above the stop before then disarms it. Firing sets the asset's target to 0% and scales every other target up in proportion, so the basket is at 100% again without it, and the stop is gone. On a smart basket, or one its holders run (section 8.1), no asset is scaled past its weight cap: what the caps leave no room for stays on the stopped asset, and a stop with no room at all waits, armed. The keeper then sells the asset out in clips of up to half the basket, a minute apart, each into the asset furthest under its new target and each held to the oracle floor. This happens whatever the basket's size: the $50 line doesn't apply to a stop.

What a stop can't do: it doesn't buy back if the price recovers; a creator can add the asset again. A stop fires on the posted price, so on an asset without a Pyth feed, whose price may fall at most 20% an hour, a stop after a crash fires and sells in steps, over hours; the app labels these "slow stops". A thin token can be pushed through its stop for 5 minutes, and a stop sells near the bottom of a dip. An immutable basket's stops are part of its recipe: they're set before its first deposit and never change, and when one fires the basket follows that fixed rule.

5. Fees

FeeRateWho pays, whenWhere it goes
Protocol fee0.40%On every mint and redeem, including a creator's first depositHalf to the GRAVI burn, a tenth to GRAVI stakers (section 6.4), the rest to the treasury
Smart basket fee0.80%Replaces the protocol fee on a Smart basket's mints and redeemsSplit like the protocol fee
Creator's cut0% to 0.60%On each buy by someone else, on top of the protocol fee. Selling and holding don't pay itThe basket's creator
Yearly fee0% to 0.20% a yearHolders, as share dilution while held, on baskets that haven't chosen a cutThe basket's creator
Creation burn10,000 GRAVI per assetThe creator, for each asset a basket is created with or gets added, unless a GRAVI stake covers it (section 6.4)Burned
Smart burn50,000 GRAVIThe creator, once, on making a basket SmartBurned
App fee0.05%On basket buys and sells through the app's USDC/SOL route, and on single-token tradesThe treasury
Networkfractions of a centEvery transactionSolana validators

Invited wallets. A wallet that joins with someone's invite doesn't pay the GRAVI-burn half of the protocol fee for its first 30 days: it pays 0.20% (0.40% on a Smart basket), none of it burned: a tenth of the full fee goes to stakers as usual, the rest to the treasury. The app fee is unchanged. The program reads the wallet's invite record, good for at most 31 days, which the wallet writes with its first trade and the keeper co-signs. The wallet puts down the record's rent, under 0.001 SOL, and gets it back with its first trade after the 30 days. For a year, the inviter receives a quarter of the protocol fee on that wallet's basket trades (0.10% of each trade, 0.20% on a Smart basket), worked out in SOL at each trade's price and paid daily in SOL by the app. It is a share of fees from someone else's trading, not a return on anything held, and it never pays out more than those trades paid in.

The protocol fee rounds up, so no flow is too small to pay it, and it is kept in shares, so the vault stays fully backed. A creator's cut rounds up too and waits in the treasury's shares until it's claimed, by anyone, to the creator's own account; the treasury can't withdraw it. The limits are in the program's code: the protocol fee can never exceed 0.50% (1.00% on a Smart basket), a creator's cut can never exceed 0.60% of a buy, a yearly fee can never exceed 0.20%, the creation burn can never exceed 1,000,000 GRAVI per asset (the Smart burn 1,000,000 GRAVI once), and at least half of every protocol fee goes to the GRAVI burn, except an invited wallet's half fee in its first month (above). Changing any of them would take new code, in public: the values the protocol authority can tune without an upgrade (section 8.2) include none of these ceilings.

Opening a token account the first time a wallet holds an asset costs about 0.002 SOL of Solana rent, refunded when the account is closed. Trading shares wallet to wallet, or in any pool someone else runs, pays the protocol nothing.

6. GRAVI

GRAVI is GraviFi's token. It carries no vote and no claim on baskets. Its main job is to absorb the protocol's revenue through burns: the more GraviFi is used, the less GRAVI there is. Staking it (section 6.4) shares part of the protocol fee and removes the creation burn.

AddressTRGNtERnbRtVkaMJ1MqU4DzSEkHrtd2qFesh6Rgravi
Supply1,000,000,000 at launch, fixed: nobody can mint more
Launch14 October 2026, on pump.fun, paired with SOL
Team1.92% of supply (19,221,405 GRAVI), locked on Streamflow until 15 April 2027: one release, no cancel, no transfer

6.1 Buyback and burn

Half of every protocol fee is set aside in the burn address (FkMEzsnij3aN9njxcjmGxi1DK43WChBtRWorvXgptUJr). It has no private key: it is controlled by the GraviFi program, and the program can only spend it one way.

  1. The burn address redeems its basket shares for the underlying tokens, exactly as any holder would.
  2. The keeper sells those tokens for GRAVI on the open market. The program checks the GRAVI received against the oracle price before accepting it.
  3. All of the GRAVI received is burned in the same transaction.

Buybacks run in slices once there is enough to be worth the network fees, so small amounts wait until they add up. Every burn is public on Solana, and the running total is shown live at app.gravifi.xyz/pulse.

6.2 GRAVI's own trading fees

GRAVI's pump.fun creator fees are claimed into the team's GRAVI wallet, about once a week: half buys GRAVI and burns it, half goes to the treasury.

The first burn (15 October 2026) bought and burned 10,611,685 GRAVI with 1.90 SOL. By 7 November 2026 all burns together had taken about 126 million GRAVI out of supply, 12.6% of it, most of it from these trading fees. Every claim and burn is public on Solana, and the live total is at app.gravifi.xyz/pulse.

6.3 Creation burn

Every asset in a basket burns GRAVI from the creator's wallet: creating a basket burns it for each asset the basket starts with, in the instruction that creates it (a basket created and never seeded has still paid it), and adding an asset later burns it for that asset. It is a real burn, so supply falls; nobody receives it. The amount is 10,000 GRAVI per asset today (100,000 until 25 October 2026), so a five-asset basket burns 50,000. The protocol authority sets it (section 8), and 0 turns it off; the program refuses anything above 1,000,000 GRAVI per asset, and only a program upgrade could raise that ceiling. A creator doesn't need to hold GRAVI first: the app buys whatever is missing with SOL as part of creating or adding, and shows the cost before signing.

One wallet can be exempt: the protocol authority can name a single team wallet whose baskets burn nothing, so the team can launch its own promotional baskets without spending GRAVI it doesn't have. Which wallet it is, if any, is public on-chain (right after the protocol account's fields), and the exemption applies to that wallet's baskets only. A GRAVI stake also makes free baskets: one a day per 5,000,000 GRAVI staked (section 6.4).

6.4 Staking

Anyone can stake any amount of GRAVI. Two things follow:

Staked GRAVI counts 2 days after it's staked; a top-up waits its own 2 days, and what already counts keeps counting. Unstaking takes 7 days, during which that GRAVI earns nothing and makes no free basket. Staked GRAVI sits in the stake pool's own account, which only its staker's withdrawal moves: the account that sells for the pot can't reach it.

What the pot pays depends only on what baskets earn in fees. It can be very little, and it is not a promise of any return. GRAVI's price can fall by more than a stake earns.

7. Assets

142 assets are GraviFi Verified today:

An asset is listed only if it has a working market on Solana. A token whose own rules let its issuer take a cut of every transfer is accepted only up to 4%, and the program checks that cap on every deposit. Tokens with an active transfer hook, which hands every transfer to another program, are refused.

Tokenized stocks are issued by third parties, who can freeze or claw back their tokens under their own terms; GraviFi can't prevent that, only keep redemption of everything else open (section 2.2). Their issuers don't offer them to US persons.

7.1 Verified and Unverified

The assets above are GraviFi Verified: chosen by the team. A creator can also ask for any other Solana token with a market (open listing). The app checks it first and refuses, whatever else it has going for it, a token that could jam or empty a vault: an active transfer hook, a transfer fee over 4%, accounts that start frozen, a token that can't move or is paused, and freeze, clawback or pause powers held by anyone but a known stock, gold or stablecoin issuer. Leveraged and inverse products are allowed, with a warning that they lose value when the market swings. Beyond that it needs a live price, $10,000 in its pools, 6 hours of trading, and a $150 trade either way within 10% of the market. A token that passes is offered to everyone as Unverified and registered on chain in the transaction of the first basket that uses it, signed by the app's listing key (the lister, which the program lets list assets and nothing else); that creator pays the record's rent.

Unverified tokens carry a badge and a one-line note wherever they appear, and so does every basket holding one; Explore and Pulse can be narrowed to baskets of Verified tokens. The rebalancer gives them the wider limits memecoins get, and backs off a basket whose slices keep failing on one. GraviFi doesn't fix or refund problems an Unverified token causes. The app re-checks them in turn every day: one that fails the rules for 3 days running is no longer offered for new baskets (baskets holding it keep it), and one Jupiter hasn't priced for a day is valued at zero so its baskets stay tradable. A token that meets the Verified bar for a week (for stocks from a known issuer, a $150 trade within 2-3%; for others, also $1M market cap and $100,000 in pools) can be promoted by the team. Every token shows its contract address.

8. Who controls what

A basket is run by its creator, by the strategist within its limits if it's Smart (section 3.1), or by its holders (section 8.1); there is no vote on the protocol. Control is split so that no role can reach holders' funds:

RoleCanCan't
HoldersRedeem at any time, send or trade their shares
A basket's creatorChange their basket's weights, assets, rebalancing, cut (within the caps; a rise waits a day, and lowering the cut calls off a rise still waiting), stop losses, split; on a Smart basket, set its mandate and tighter limits (each waits a day) and pause it; set how wallets show its shares (name, ticker, picture); set an immutable basket's stop losses before its first deposit; hand the basket to another wallet, which then holds all of this and what the cut and fee earnTouch the vault's tokens; once the basket is immutable, anything but how wallets show its shares
The lister (the app's listing key)List a token a creator picked, inside the creator's own transaction, once it passed the app's checksAnything else: delist, change a setting, move a token; or list a token whose new accounts start frozen, that can't move, or that's paused
The strategist (the app's Smart-basket key)Set a Smart basket's targets, add and remove its assets and put its mandate's stops on them, within that basket's limitsMove a token, change a fee or a limit, touch any basket that isn't Smart
The protocol authority (the team)List and delist assets, name the lister, the strategist and the guardian (a key named acts after 24 hours), set fees, the Smart fee, the creation burn and the Smart burn within the ceilings (a raise waits 7 days), name the one burn-exempt team wallet, move the staking threshold (a raise waits 7 days), open or close community mode, tune the values and use the kill switches in section 8.2 within their bounds (user-facing changes wait 7 days), withdraw the treasury's shares (never what's owed to creators or stakers), match assets to Pyth feeds, name the keepers, set how wallets show any basket's shares, and upgrade the programThrough any of its settings: move a vault's tokens, block a redemption, exceed the fee or creation-burn ceilings or any bound in section 8.2, send less than half of the protocol fee to the burn (outside an invited wallet's half fee)
The price service (its own key)Post the prices rebalances, buybacks and stop losses are checked against, within the bounds above, read from Jupiter by itselfAnything else: trade, move a token, change a setting
The guardian (none named today)Delist an asset; pause a Smart basket's reviewsList anything, or anything else
The guard (a separate server key)Co-sign, with the app's key, a recurring plan's due fill or a hit stop's sale from that plan's or stop's own wallet (section 2.4)Sign alone; touch a holder's main wallet; send funds anywhere but back to the owner
The keeper (the app's server)Run rebalance, sweep and buyback slices within the program's checks, paying it back at most $0.05 a rebalance or sweep slice and $0.50 a buyback or stakers' sale, for its network costs; ask the price service to post a price (anyone may ask the program to check a stop); co-sign an invited wallet's invite recordPost or choose a price; move a vault's tokens outside a slice, or accept less back than the posted price allows; take more than those limits; give a wallet half fees for more than 31 days at a time
The burn addressBuy GRAVI and burn itAnything else: it has no key

The program and protocol authority are held today by one team key, and upgrading a program can change what it does. Prices and trades take two more keys, held apart: the price service's key posts prices, the app server's key trades. Taking value through a false price needs both. The price key alone can post a price only within the bounds above, which could send a rebalance the wrong way or fire a stop early, but it can't trade; the trading key alone trades only at the prices the price service posted. Holders trust the team with these keys today. That is why the next steps (section 10) are a multisig, so no single key can upgrade it, and a verified build, so anyone can check that what runs on-chain is the published code.

8.1 Community baskets

A creator can hand a seeded, public basket to its holders. It is one way: only a vote can return it. The creator keeps any cut or yearly fee, which a vote can only lower, and loses every other power over the basket.

Anyone holding a basket's shares can stake them, on any basket; they keep their value but can't be sold or redeemed until withdrawn. In a community basket, staked shares vote:

A majority can still do what its votes allow: within those limits it could replace a whole basket in about 6 days. A vote can be bought, and nothing on chain can stop that. Holders of a community basket are trusting its other holders, and can leave at any time.

8.2 What the protocol authority can tune, and when

Most of the numbers in this paper live in one account the protocol authority sets, so tuning them doesn't need a program upgrade. Each has bounds written in the code that no setting can pass, and none of them is a fee ceiling or the burn's floor: those stay in the code (section 5). Until a value is set it is the number this paper states.

A change never moves a window already open: a proposal's vote, wait, window and passing rules, a stake's warm-up, an unstaking, a cut rise and a mandate keep the times and rules they started with.

Fees, burns and keys. The fees and burns keep their ceilings in the code (section 5), and changing them follows the same rule as the values above. A raise of the protocol fee, the Smart fee, the burn's share of the fee, the creation burn or the Smart burn waits 7 days, then applies by itself; lowering one is at once, and calls off a raise still waiting. So does a raise of the staking threshold. A key the authority names for a role (a new authority, the guardian, the lister, the strategist, the price service's key, the keeper's key, the burn-exempt wallet) acts only 24 hours later, the key it replaces acting until then, so a key swapped in is public before it can do anything. Removing a role is at once: it only stops that key, and is how a lost key is cut off.

Kill switches. The authority can stop, at once, a family of instructions: new money in, new baskets, rebalancing, the buyback, stop losses, Smart baskets' strategist, new stakes, community votes, invites, or the lister. A switch only stops things; lifting it returns to the rules above. No switch reaches the way out: redeeming, unstaking and withdrawing, claiming, closing stops, pausing a Smart basket and handing a basket back to its creator always work. A new feature can be shipped switched off and turned on later, after the same 7 days' notice.

9. Risks

GraviFi is new software. Before using it, know that:

Nothing in this paper is investment advice, or an offer to sell GRAVI or any other asset.

10. Roadmap

  1. Independent security audit.
  2. Multisig for the program and protocol authority, and a verified build, so anyone can check that the program on-chain is exactly this code.
  3. Pyth checks for more assets (the tokenized stocks' feeds) as Pyth keeps them updated on chain.
  4. Baskets of up to 16 assets.

Addresses

ProgramHHmD4ZP5he9GrcmcNrpjahyK1dWh2MhMwmVpiPRJsw3G
GRAVITRGNtERnbRtVkaMJ1MqU4DzSEkHrtd2qFesh6Rgravi
Burn addressFkMEzsnij3aN9njxcjmGxi1DK43WChBtRWorvXgptUJr
Team GRAVI walletFK9x1PgAqunjtm57DCSpWLuwFmNEArqbF9aieb2VgnL1
Team GRAVI lock (Streamflow)GxtRDjGXxHQTMRh6FX1qte7yvhAP2tTkHKZrhswRhLyp
TreasuryCmBPHj38TGpjGLxgAVYvEYETBM4WYqK6GtBgksgKAym2
Protocol authorityB95P86aojwMui9aKFdwMjycbML3QFh7jgJ2VftSj9YJ5

Every address can be checked on Solscan.


GraviFi · gravifi.xyz · team@gravifi.xyz (contact and security reports)