Project title: Testnet.ai - Easy Stellar Testnet Asset Manager
Summary: Stop wasting development cycles on your testnet tokens. We're taking the pain out of the creation and management of Stellar assets.
Goals: We have a lengthy list of existing features outlined below under Existing Features and Functionality. With community feedback, we're looking to prioritize our Feature Backlog based on the most requested features. Please review our feature backlog and either suggest what item(s) you'd like to see developed first as well as any other ideas you'd like to see us implement.
Timeline: The project is live on the testnet environment. Additional features from our Feature Backlog will be developed based on community suggested priority. The most urgent need is to add states to market maker creation and deletion to prevent the market maker from running while such an event is processing.
Description: We believe Testnet.ai will help spawn a newfound interest in building on the Stellar network. Here is a quick summary:
- Reduce friction of building and testing custom Stellar assets
- Lower the barrier to entry for building localized testing environments with custom Stellar assets
- Stop worrying about losing your testing environment during the quarterly testnet resets
- Gain a better understanding of the features and underlying mechanics available to you for managing an asset on the Stellar network
- Supercharge your testnet assets with an automated market maker to ensure there's enough liquidity for you to run ample testing
- Ensure your transactions don't fail using our automated fee calculator based on network surge pricing
Don't just take our word for it though. Go ahead and start creating tokens on testnet to see this in action for yourself. It's a free service for the benefit of the community.
Existing Features and Functionality
- The ability to automatically recreate an asset, including issuer, distributor, and market maker when the Stellar testnet resets quarterly
- A full blown user registration process and administrative dashboard for managing tokens
- The ability to create and delete tokens, which includes both the issuer and distribution accounts
- The ability to delete tokens and perform as much cleanup as possible on the test network
- The ability to customize AUTH flags on newly created tokens
- TODO: The ability to permanently lock the token supply following creation
- Creation of a custom subdomain to act as your
home_domain for each generated token which serves a
stellar.toml file to identify your token
- The ability to create and customize market making strategies for tokens to ensure they're provided liquidity for personal or company internal testing on the SDEX. This includes:
- Automatically creates and funds trading accounts on the buy and sell side
- Ability to select a top 100 cryptocurrency to base your testnet asset's price against
- Ability to customize the orderbook spread percentage
- Ability to customize the orderbook depth
- Ability to customize the orderbook offer amounts
- Automatically handles re-filling trading accounts when their balances get low
- Ability to activate/deactivate a market maker to control when it trades
- Deletion of market makers will make best attempts to fully scrub the network, including deleting active offers, deleting data, deleting trustlines, and sending funds back to their issuers followed by merge account
- The ability to send either XLM or any custom token you've created to someone else on the Stellar testnet
- The ability to import an existing testnet token into our system to be auto managed and gain the above capabilities
- The ability to create user wallets with tags and descriptions for internal use.
- Implemented a user notifications system via websockets (push notifications) to keep users abreast of various queued backend activities taking place.
- Add additional UI for common issuer features/functionality (backend code already supported):
- Allow auto-recreation of custom created user wallets upon testnet reset
- Allow trustline creation from a wallet when
auth_required is enabled
- Add additional UI for supporting re-creatable user accounts upon testnet reset
Add ability to name, tag, and describe the account. This is useful for matching environmental variables or describing the account's purpose within your application.
- Handle checking and recreating following testnet reset
- Allow specifying the default balance in XLM
- Allow specifying any trustlines that should be created
- Allow specifying amount of trustline tokens to pre-fund with
- Allow specifying custom AUTH flags
- Add multi-signature support of both issuer and distribution accounts with customizable number of signers and threshold configuration. In other words, we'd like to support common strategies (playbooks) such as:
- Freeze Asset Supply
- Multi-signature Issuer Account
- Multi-signature Distribution Account
It's worth nothing that enabling multi-signature support means we would not be able to perform market making of the asset on the sell side.
- Ability to create more than one uniquely named distribution account, each with their own user-defined purpose and multi-signature settings. For example, "Cold Storage" vs. "Operations" vs. "Distribution".
- Add more customization to the default market maker. This includes adding the ability to customize the following:
- Allow for randomization of the buy and sell order timings (within a boundary) to not occur strictly on a given schedule
- Allow for randomization of the buy and sell order amounts (within a boundary)
- Add ability to disallow an asset's generated private keys from being stored in the database. This would mean the user is responsible
for physically copying and saving the keys or accompanying JSON key file with no method of recovery. This would also mean
we'd be unable to perform any functionality or market making as we would not have access to the private keys for signing transactions.
The UI would merely be a means of creating and distributing a custom assets.
- Improve the overall UI design with a more appropriate admin dashboard theme
- Build and add custom market maker strategies (each would effectively be a strategy plugin via an adapter pattern) to accomplish a variety of goals
dependent on the underlying asset's purpose. Suggestions welcome!
- Team support. Allow specifying team members to join your project and grant them an access role for performing a subset of privileged actions.
- Improve the speed of creating trading accounts. Either create via batch transactions or use channel accounts.
- Implement channels (a round-robin approach to signing Stellar client transactions) to increase TPS and avoid potential sequencing issues.
- Open source the codebase to allow for feature enhancements as well as for users to be able to comfortable with
creating their own assets on their own physical equipment.
We're interested in hearing your thoughts on what features you'd like to see in this tool. If you could rank
your feature requests from high to low, it'd help us expedite the development of useful tools for the Stellar development community.
As an example, here's an idea we thought may be interesting but need your feedback on:
- Add ability to upload a list of email addresses, Stellar public keys, and their corresponding award amount to automatically handle distribution (i.e. airdrops).
Where Funds Will Go
- Scaling the service as usage grows. There's a lot of queued workers running behind the scenes.
- Running Stellar Horizon and Stellar Core to ensure rate limits aren't exceeded given the amount of network activity it takes to manage trading accounts.
- Paying for the .AI domain as they're fairly expensive.
- Additional feature development as outlined above.