{"id":23256562,"url":"https://github.com/vyper-protocol/vyper-core","last_synced_at":"2025-08-20T14:32:50.516Z","repository":{"id":37080555,"uuid":"445213531","full_name":"vyper-protocol/vyper-core","owner":"vyper-protocol","description":"🐍 Permissionless derivatives","archived":false,"fork":false,"pushed_at":"2023-05-19T14:36:16.000Z","size":2121,"stargazers_count":41,"open_issues_count":3,"forks_count":12,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2023-05-19T15:36:53.255Z","etag":null,"topics":["rust","solana","solana-program"],"latest_commit_sha":null,"homepage":"https://vyperprotocol.io/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vyper-protocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2022-01-06T15:14:44.000Z","updated_at":"2023-05-19T15:36:53.256Z","dependencies_parsed_at":"2023-02-15T11:47:12.402Z","dependency_job_id":null,"html_url":"https://github.com/vyper-protocol/vyper-core","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyper-protocol%2Fvyper-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyper-protocol%2Fvyper-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyper-protocol%2Fvyper-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyper-protocol%2Fvyper-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vyper-protocol","download_url":"https://codeload.github.com/vyper-protocol/vyper-core/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230431100,"owners_count":18224655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","solana","solana-program"],"created_at":"2024-12-19T12:17:24.737Z","updated_at":"2024-12-19T12:17:25.405Z","avatar_url":"https://github.com/vyper-protocol.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://vyperprotocol.io\"\u003e\n    \u003cimg alt=\"Vyper Protocol\" src=\"https://github.com/vyper-protocol/branding/blob/main/medium-logo.png\" width=\"250\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nVyper Core works as a set of smart contract which can take any SPL token and a custom payoff function, and redistribute the tokens to match the payoff upon certain conditions. For example, people can deposit farming LP tokens, which after some time (e.g. a week) are redistributed to reflect the the impermanent loss vs fees generated.\n\nThere are three main smart contracts:\n\n- **Vyper Core**: manages position IOUs creation and redemption, accepts only fungible tokens (e.g. LP tokens or cTokens). It redistributes collateral deposited consuming data from the rate calculator and redeem logic contracts\n- **Rate Calculator**: updates the fair price of the collateral deposited (e.g. USD value of LP token). Supports up to 10 different underlyings for sophisticated payoffs\n- **Redeem Logic**: payoff formula which specifies how collateral should be distributed, based on initial collateral deposited, initial prices, final prices, and other parameters (e.g. strike, duration)\n\n# Repository Structure\n\nFollowing the Vyper suite\n\n## Solana Programs\n\n| Name                              | Type                | Version | Path                                   |\n| ----------------------------------| ------------------- | ------- | -------------------------------------- |\n| **Vyper Core**                    | Core Primitive      | `0.1.0` | `programs/vyper-core`                  |\n| **Rate Switchboard**              | Rate Plugin         | `0.1.0` | `programs/rate-switchboard`            |\n| **Rate Pyth**                     | Rate Plugin         | `0.1.0` | `programs/rate-pyth`                   |\n| **Rate Mock**                     | Rate Plugin         | `0.1.0` | `programs/rate-mock`                   |\n| **Redeem Logic Lending**          | Redeem Logic Plugin | `1.0.0` | `programs/redeem-logic-lending`        |\n| **Redeem Logic Lending Fee**      | Redeem Logic Plugin | `1.0.0` | `programs/redeem-logic-lending-fee`    |\n| **Redeem Logic Farming**          | Redeem Logic Plugin | `2.0.0` | `programs/redeem-logic-farming`        |\n| **Redeem Logic Vanilla Option**   | Redeem Logic Plugin | `2.0.0` | `programs/redeem-logic-vanilla-option` |\n| **Redeem Logic Forward**          | Redeem Logic Plugin | `1.0.0` | `programs/redeem-logic-forward`        |\n| **Redeem Logic Settled Forward**  | Redeem Logic Plugin | `1.0.0` | `programs/redeem-logic-settled-forward`|\n| **Redeem Logic Fila**             | Redeem Logic Plugin | `1.0.0` | `programs/redeem-logic-fila`           |\n| **Redeem Logic Digital**          | Redeem Logic Plugin | `1.0.0` | `programs/redeem-logic-digital`        |\n\n## Rust Libraries\n\n| Name         | Version | Path                |\n| ------------ | ------- | ------------------- |\n| Vyper Utils  | `0.1.0` | `libs/vyper-utils`  |\n| Vyper Macros | `0.1.0` | `libs/vyper-macros` |\n\n## Typescript SDK\n\nWe're currently working on a typescript sdk for frontend integrations. This is still a WIP, but it's available at the path `/sdk`.\n\nOnce finished it'll be published as a npm module.\n\n# Setup, Build, and Test\n\nFirst, install dependencies:\n\n```\n$ yarn install\n```\n\nAnd install Anchor by following the [instructions here](https://github.com/coral-xyz/anchor/blob/master/docs/src/getting-started/installation.md).\n\nBuild the program:\n\n```\n$ anchor build\n```\n\nFinally, run the tests:\n\n```\n$ cargo test\n$ anchor test\n```\n\n# Documentation\n\nGeneral Vyper documentation can be found [here](https://docs.vyperprotocol.io/).\n\n# Getting Help\n\nJoin [our Discord channel](https://discord.gg/KYaXgwetcK) and post a message\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvyper-protocol%2Fvyper-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvyper-protocol%2Fvyper-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvyper-protocol%2Fvyper-core/lists"}