Expand description
Venko: Rails for realtime finance on Solana.
About
Venko is a protocol for issuing streams of tokens. It is designed for a variety of usecases, including:
- Token lockups. Issue team tokens over a schedule, irrevocably.
- Grants. Issue revocable grants with a cliff and release schedule.
- Escrow. Send tokens to someone with a cancellation period, allowing you to cancel the payment if it was sent to the wrong address.
We’re in active development. For the latest updates, please join our community:
- Twitter: https://twitter.com/VenkoApp
Note
- Venko is in active development, so all APIs are subject to change.
- This code is unaudited. Use at your own risk.
Addresses
Program addresses are the same on devnet, testnet, and mainnet-beta.
Contribution
Thank you for your interest in contributing to Venko Protocol! All contributions are welcome no matter how big or small. This includes (but is not limited to) filing issues, adding documentation, fixing bugs, creating examples, and implementing features.
When contributing, please make sure your code adheres to some basic coding guidlines:
- Code must be formatted with the configured formatters (e.g.
rustfmt
andprettier
). - Comment lines should be no longer than 80 characters and written with proper grammar and punctuation.
- Commit messages should be prefixed with the package(s) they modify. Changes affecting multiple packages should list all packages. In rare cases, changes may omit the package name prefix.
License
Venko Protocol is licensed under the GNU Affero General Public License v3.0.
Modules
An Anchor generated module, providing a set of structs
mirroring the structs deriving Accounts
, where each field is
a Pubkey
. This is useful for specifying accounts for a client.
Instruction handler for crate::venko::create_stream.
An Anchor generated module containing the program’s set of
instructions, where each method handler in the #[program]
mod is
associated with a struct defining the input arguments to the
method. These should be used directly, when one wants to serialize
Anchor instruction data, for example, when speciying
instructions on a client.
Instruction handler for crate::venko::redeem.
Instruction handler for crate::venko::revoke.
Macros
Generates the signer seeds for a crate::Stream.
Structs
Accounts for venko::create_stream.
Accounts for venko::redeem.
Emitted on crate::venko::redeem.
Accounts for venko::revoke.
Emitted on crate::venko::revoke.
A stream of tokens being sent, with a cliff and an optional Self::revoker.
Enums
Errors.
Statics
The static program ID
Functions
Confirms that a given pubkey is equivalent to the program ID
The Anchor codegen exposes a programming model where a user defines
a set of methods inside of a #[program]
module in a way similar
to writing RPC request handlers. The macro then generates a bunch of
code wrapping these user defined methods into something that can be
executed on Solana.
Safety
Returns the program ID
Type Definitions
Anchor generated Result to be used as the return type for the program.