Page cover

sPinto: Composing Pinto with DeFi

The Pinto printer has the potential to be one of the most powerful forces in crypto. However, there is a major friction point to connect the printer with the rest of DeFi: Silo Deposits are not fungible.

Due to the need for the protocol to minimize bank runs, the Stalk System introduces the element of time to index Deposits, which necessitates its use of the ERC-1155 semi-fungible token standard. In other words, Deposits are treated differently based on the time since they were Deposited in the Silo.

However, DeFi protocols currently run almost exclusively on the ERC-20 fungible token standard and rarely support ERC-1155 tokens. Therefore, holders of Pinto were unable to earn prints while using Pinto in other DeFi protocols, limiting the utility of Pinto.

Enter sPINTO

sPinto is a permissionless yield-bearing version of Pinto that wraps ERC-1155 Pinto Deposits in an ERC-20 fungible token, thereby enabling the composition of the Pinto printer with DeFi.

Any holder of Pinto Deposits can Wrap their Pinto into sPinto. The number of sPinto received upon Wrapping is proportional to the increase in Deposited Pinto in the sPinto contract resulting from the Wrap.

Any holder of sPinto can Unwrap their sPinto into Pinto Deposits. Unwraps receive the Deposits with the lowest amount of Stalk held by the sPinto contract at the time of Unwrap.

sPinto is non-rebasing, meaning that when Pinto prints, the number of sPinto holders own remains constant, but the number of Pinto the sPinto can be Unwrapped for increases.

Lessoned Learned From Root

Because Deposits have different numbers of Stalk per Pinto Denominated Value (PDV), the system needs a method to create fungibility upon Wrapping, and determine how much Stalk per PDV to distribute upon Unwrapping. If a Depositor Wraps Deposits with less Stalk per PDV than the contract has on its Deposits, either the contract has to give them a fungible asset with less PDV or more Stalk per PDV than that of the Deposits they just added.

Upon Wrapping in Root, the ERC-20 Wrapper of Beans in the Beanstalk ecosystem, if the ratio of Stalk per PDV (formerly BDV) on the Deposits Wrapped is less than the ratio of Stalk per PDV of Deposits in the Root contract, Root haircuts the number of Root which Depositors receive.

Upon Unwrapping, Root allows holders to receive Deposits with Stalk that have up to the average Stalk per PDV in the contract at the time of Unwrapping. In practice, this creates a tremendous disincentive for newly Deposited value to be Wrapped into Root because it effectively confiscates some portion of the value immediately upon Wrapping.

To put all Wrapped Deposits into the same fungible token without a haircut of PDV on value Wrapped with less Stalk per PDV than the contract has, sPinto awards such assets with a Stalk bonus instead. To prevent Stalk theft, sPinto distributes the Deposits with the lowest Stalk per PDV at the time of Unwrapping. In the instance where someone is leaving the system entirely, they will not care about the lower amount of Stalk. The combination of a Stalk bonus to Wrap newer Deposits and a small friction to Unwrap makes sPinto attractive to use and sticky, marking a significant improvement over the Root model.

sPinto x Flood

A Flood distributes non-Pinto rewards to Deposits based on their Stalk. Because the sPinto contract cannot attribute different rewards to different sPinto without breaking its fungibility, when a Flood occurs, the sPinto contract claims the non-Pinto rewards and uses the proceeds to buy more Pinto. sPinto checks the Pinto price in every Well (liquidity pool) in which it received assets and swaps up to 10% of each of its non-Pinto assets into Pinto. The swap trigger price is capped at $1.02 and must be within a manipulation resistant range in order to minimize the contract from overpaying for Pinto and from being manipulated given its programmatic purchasing of Pinto. This structure maximizes the Pinto underlying each sPinto.

Downsides of sPinto

sPinto holders make two primary sacrifices in exchange for fungibility. First, sPinto holders may not receive as much Stalk as if they were holding Deposited Pinto directly in the Silo because as new Pinto Deposits with less Stalk than the average Stalk per Pinto enter the sPinto contract, the number of Stalk per Pinto decreases for all sPinto holders. Second, sPinto holders are not able to Convert, and thereby realize opportunity cost for holding sPinto in the form of the potential to increase their PDV and receive a Stalk Bonus.

Upgradability

sPinto is an upgradable contract, owned by the PCM.

Security

sPinto is part of the Pinto bug bounty program on Immunefi - bounty hunters are encouraged to submit bug reports regarding sPinto even before it’s formally added to the program. sPinto has been audited by Cantina and EgisSec. You can read the full audit reports here:

In Summary

sPinto is designed to let people combine the most lucrative feature of algorithmic fiat money – prints paid directly to those who Deposit in the system – with simultaneous use of their Pinto in other DeFi protocols. sPinto solves the problems of Root, and will likely play an essential role in the widespread adoption of Pinto throughout crypto so it can save Ethereum from its overwhelming dependence on centralized stablecoins.

Users can wrap Pinto or Pinto Deposits into sPinto here.

Last updated