Articles on: Features

rhino.fi Transparency Guides: Yield

_This article deals with yield, a crucial part of rhino.fi’s evolution as a multi-chain DeFi aggregator and a key facet of our cross-chain technology.
_

Summary

Yield opportunities enable our users to access passive as well as active income opportunities and find sanctuaries in crypto’s bear market.

We offer both cross-chain and native Ethereum yield opportunities, which are carefully curated to weed out spammy and unsustainable offers.

Users can currently pursue yield opportunities on a variety of chains, including Sommelier Real Yield (hosted on Ethereum) and Stargate USDT (hosted on Polygon).

All our opportunities are accessible directly from rhino.fi, without having to bridge tokens onto the chains that host them. And we apply a boost to selected opportunities, to supplement the base annual percentage yield (APY) figure.

Where did the idea for yield on rhino.fi come from?

Rhino.fi’s initial goal was to offer a small subset of curated offers.

There are thousands of yield opportunities in DeFi, ranging from relatively low-risk, single-token stablecoin yields right through to multi-token pools, which carry a significant risk of impermanent loss in times of volatility.

So our idea was to give users access to excellent yield opportunities whilst also holding onto their tokens, and giving them peace of mind that each opportunity was safe, audited, and trustworthy.

Although we have since expanded our yield offering by providing opportunities cross-chain, the core tenets of our approach to yield have remained the same.

Ok, so how does yield work on rhino.fi?

DeFi yield is typically wrapped up in a token, which provides a fractional representation of a share in a project. It may be a liquidity provider token, which recognises the liquidity the user has supplied to a particular project and entitles them to rewards; a pegged token, which entitles the user to liquid staking rewards; or another form of asset.

On rhino.fi, we make these tokens available in one of two different ways.

Firstly, we market-make the opportunity. In other words, we go out and buy a whole bunch of these tokens on the market, we deposit them and when people want to invest, they buy these tokens from us at the same price as they would buy them from the source chain.

Because the tokens represent a fractional share of a wider opportunity, we’re effectively earning yield whilst users are buying from us. Then, when we run out, we go and buy some more.

Secondly, for cross-chain yield, we use an extension of the ‘hub and spoke’ model we’ve built for cross-chain swaps.

This model orbits around StarkEx, our Layer 2 zero-knowledge rollup, and a series of on-chain smart contract wallets. These contracts are trained to buy tokens on our users’ behalf, and they deal with the contract run by the relevant yield platform to acquire the users’ desired yield token.

As an operator, we front the liquidity on the smart contract wallets on each chain. Then, when a user gives us their liquidity, we give it back to them on the relevant chain, effectively creating a temporary liquidity loan, which we deposit for them.

Whenever a user wants to interact with us, they can either deposit funds directly on the chain in question or from Layer 1 into the StarkEx rollup. The yield tokens they acquire are then held in their smart contract.

Since we opened cross-chain yield, we have modified our offering in two distinct ways.

Firstly, we have modified our use of aggregators. Initially, our contracts were trained to only call into ParaSwap’s MetaDex aggregators, and ParaSwap would do the swapping behind the scenes. What we now have is a universal quoting mechanism, which allows us to quote from any price source; we no longer need to have an aggregator on a chain in order to price something or deliver a swap.

Secondly, we’ve embraced Weiroll, which is effectively a bytecode scripting language, and enables us to build a transaction as a series of executions which we then send to the chain to be executed. This is great because each protocol, each yield-bearing opportunity, is essentially its own unique smart contract; even multiple calls within the same platform will probably be different smart contracts, and it would cost a lot to write a custom integration for every single smart contract we want to interact with.

Using Weiroll, we can build something akin to an intermediate representation of instructions, which we then ask the user to sign, and we send these instructions to the destination chain. When our smart contract on the destination chain unpacks this, it knows the value of the funds the user has sent, the token they wish to receive and their expected ratio.

All this means we can very quickly script the interactions on-chain to allow lots of different potential opportunities to be accessible for the user.

What is unique about yield opportunities on rhino.fi?

Firstly, we make it easier to access yield opportunities on different chains by using our cross-chain bridging mechanism.

We also do a lot of work for the users behind the scenes, to abstract away some of the common challenges of yield opportunities. Specifically, we have saved users the hassle of having to buy multiple tokens on a specific chain and then carrying out multiple complex transactions to get the correct final LP tokens. rhino.fi abstracts away the cost, time and complexity to give users one-click access and exit.

Furthermore, we provide our own opportunities via our own AMM pools, the first completely trustless AMM protocol on StarkEx which facilitates 24/7, permission-less trading.

Finally, we provide a boost to the headline annual percentage yield (APY) figure on certain opportunities, such as Stargate USDT. We allow users to reach the chain in question (Polygon in this case), interact with the opportunity directly and secure the yield-providing token. Then we provide a top-up to achieve the boosted APY. Often, this boost is provided through a grant from the opportunity provider.

How do we provide our yield boosts?

rhino.fi uses workers, a type of API that can create background tasks and send messages to their creator, to look at the vaults of balances of users on StarEx. This informs how many tokens we emit in a certain time period.

We calculate each user’s representative share of an opportunity and then we use our Airdrop mechanism to drop funds into users’ vaults. This can be done off-chain, but we choose to do it off-chain on StarkEx where the user can claim directly on our platform.

We calculate our boost based on the number of people who have already entered the opportunity. As more people enter, the rewards are spread across more people, so the return diminishes.

How do we use aggregators?

We have partnered with Beefy Finance, an aggregator of rewards and fees, and use their contract for certain opportunities, notably Stargate USDT.

Beefy integrates directly with other providers and makes it easier to extract passive income, because they handle various functions behind the scenes, such as the periodic extraction of farm tokens, and then provide payments in the opportunity’s native currency by enriching the initial deposit amount.

We are not bound to use Beefy for every opportunity; in fact, we can potentially integrate with any aggregation platform.

How do we uphold self-custody?

The smart contracts that we deploy on each chain store tokens on the behalf of users.

Users can withdraw, sell or deposit at any point. rhino.fi doesn’t have access to their funds, and users can only instruct rhino.fi to take actions by signing, using their wallets.

How do we weed out unsuitable or unsustainable opportunities?

We have a due diligence criteria for yield opportunities.

Many commentators have suggested that a high APY is a red flag for a questionable opportunity, as projects that offer these high APYs often pay the yield in their own native tokens, and sustain the returns by minting huge amounts of tokens, which leads to inflation (a bit like a bank printing money in the fiat world).

A high APY isn’t always a red flag in itself. What is a red flag, however, is when the APY stays high. When an opportunity is genuine, the initial APY should come down as more people enter. However, if the APY stays high, this may be an indicator of a high level of risk.

Here are some of the other criteria we look for:

Smart contract audits. This is a key indicator of the transparency of a project.
A significant Total Locked Value (DVL). This is a good barometer of the durability of a project, and its smart contracts.
Deposits from a wide variety of tokens.
A personal relationship with the rhino.fi team. In other words, we’ve met the team, we trust them, we believe they take the security of user’s funds seriously, we can see that that they are doxxed (in other words, their profile is visible online) and they have a good reputation in the industry.

What are the risks?

Our yield opportunities are subject to the following risks:

Smart contract risk. This means the risk that the smart contract suffers a hack or exploit. Very occasionally, this happens.
Liquidity risks. Sometimes (again very occasionally), users may find it difficult to remove their funds because there aren’t enough tokens in the pool they’ve deposited into.
Impermanent loss. This is a type of opportunity cost, which occurs when the value of a token changes faster or more significantly on the open market than in the closed-loop ecosystem the user has deposited into. In this case, it may have been more profitable to simply hold onto the tokens than invest them in the opportunity.

If you would like to discuss our process for cross-chain swaps, or any other aspect of rhino.fi’s technology in more detail, please contact us via Twitter or Discord.

Updated on: 13/06/2023

Was this article helpful?

Share your feedback

Cancel

Thank you!