Beta release of Unicycle top up service

Hi everyone, I’m happy to announce the beta release of Unicycle.

Heard enough and wanna jump right in? Head over to https://ic-unicycle.com/ and give it a spin. Not yet sold? Keep reading!

Unicycle is an automated cycle top up service I’ve been working on with some key differentiators from its competitors. The goal of Unicycle is to give ICP developers an alternative to other cycle top up services by providing better cycle purchasing rates and lower fees with long term sustainability. While newer on the scene, I believe Unicycle brings some real value for developers that make it worth trying out whether you’ve used automated cycle top up services before or not.

Lower Cost Cycles funded with ICP

Unicycle supports both minting new cycles for your canisters via the CMC, as well as swapping for TCycles from the icpswap pool. When you provide ICP as your funding source, the Unicycle service queries pricing from the two options and picks the best rate to fund your canister top ups. When minting cycles you can expect to pay 1 XDR (~$1.36)/TC, but by leveraging the available cycle liquidity in swap pools, you can currently save over $1/TC and purchase them at a discounted rate of ~$.30/TC at the time of writing this.

You also have the option of funding your top ups using the cycles ledger directly if you prefer. Looking forward we are planning to integrate additional sources of cycles to ensure you always get the most favorable exchange rate for your ICP.

Lower Fees for automated top ups

Currently Unicycle fees are charged in TC at the rate of 5% of the top up amount. This is lower than other leading services but wait…there’s more! When you pay fees to Unicycle, your TCycles are sent to a liquidity position in the icpswap pool and you are granted reward shares with the Unicycle service. As the liquidity position earns rewards in the swap pool, these rewards are directed into a Unicycle rebate pool that reduces the Unicycle fees that reward share holders have to pay proportional to their share. So the more you use the service, the fewer fees you have to pay, until you are no longer paying any additional fees to Unicycle for top ups.

Long term sustainability

To keep the top up service running, a portion of the fees may also be directed directly to topping up the canisters running Unicycle (the unicycle backend, frontend, and the blackholed canister that enables cycle status reporting). This bakes the sustainability of the service into the economics of it directly. For now, we will be keeping this part of the service cut turned off so that users can start seeing fee rebates more quickly, but as usage ramps up, this mechanism will be enabled to keep the service running for its users. In addition to having this functionality currently disabled, I’ve seeded the rebate producing liquidity position with a modest amount of TC/ICP so that early users can start seeing rebates a little quicker.

SNS Support incoming

Full SNS DAO controlled top up configurations are on the near horizon as we spend the next few weeks validating that everything is continuing to work as expected with the service and do some further testing on the SNS specific features. The frontend and backend canisters are currently under my control during this beta period, but as the service matures and iteration and testing cadences slow, I will be transferring control over to Sneed DAO for long term stewardship over the service. For non SNS controlled canisters, in order to enable the service to track your canister’s cycle balance, we’ve published a status checking canister that will need to be made a controller of any tracked canisters. The status checker is located here https://dashboard.internetcomputer.org/canister/j4txm-raaaa-aaaae-qkcqq-cai where you can verify that its only controller is itself and you can cross check the wasm hash against the public code located here https://github.com/XanderBrendon/unicycle_blackhole .

I appreciate everyone taking time to hear about the latest Sneed offering. I hope you will give the service a try and provide any feedback you may have on your experience.

Unicycle is up and running and topping itself up when needed. Here’s a few screenshots of what you’ll see once you add some canisters for tracking.

If anyone wants to try it out for yourself, you can head over and add a tracked canister. Anyone that chooses to do so in the next few days, send me your PID and I will send you 5 TC to get you started.

Hey folks - wanted to provide some updates on unicycle as features have continued to be built out and verified. Particularly around SNS support.

We now have 2 supported paths for SNS’s wanting to utilize the service depending on your workflow needs.

The first path is for users who want to keep SNS canisters topped up, but without directly involving the DAO. For these users there is a new button on the overview page “Track SNS”. Clicking this button will allow a user to add an SNS to their Unicycle UI to easily add the SNS controlled canisters to their tracked canisters list. These canisters will be topped up just like any other canister you are tracking, but do not require adding the Unicycle Blackhole canister as a controller (the service will utilize the SNS root canister to track cycles). The funding for these cycles will be deducted from your own personal unicycle deposit account in the same way other canisters are. This requires no interaction or approval from the SNS, so if you’re interested in helping a DAO out with their cycle funding and don’t want to bother with proposals or other SNS specific things, this is your path.

For SNS’s that want to set things up in a more DAO-centric way, we have the second way of onboarding to Unicycle. This path utilizes SNS governance proposals to manage a DAO controlled deposit account in Unicycle. The onboarding process for this setup is a little more involved as it involves using custom functions registered with the DAO to interact with the Unicycle backend; however, this keeps full control of the top up configuration and cycle funding accounts decentralized among the SNS neuron holders. All functionality available in the Unicycle web interface can be exercised via SNS proposals, as well as some additional functionality. Selecting which canisters to track, what thresholds they top up at and how many cycles are used in the top ups are all controlled via custom proposals. By hotkeying a neuron to the Unicycle backend, you can automate the setup process and also enable automatic funding requests whenever the DAO’s deposit account is low. This method is ideal for truly distributed DAO’s that wish to fund cycles from their treasury and allow their stakers direct control over the process. Additionally DAOs can choose to register a service admin that will allow project devs or administrators to control some limited operations directly in the Unicycle web interface. This allows for a specific set of users to be able to control which of the SNS’s canisters are tracked for cycle maintenance, what the thresholds for those canisters are, and also provides an easy interface for proposing larger configuration changes to the DAO (e.g. changing the thresholds for when a treasury transfer proposal is automatically requested for funding the DAO’s deposit account will require SNS voter approval before taking effect).

In addition to all the standard functionality that normal users get, SNS’s have the option to configure automatic motion proposals that report cycle usage for recent time ranges as well as proposals that will alert the DAO if one or more of their canisters have a sudden increase in cycle burn (to help warn of cycle drain attacks or other unexpected usage increases).

We’ll continue to improve the format and usefulness of some of these reports in the coming weeks. We’ll also continue with other new features and improvements to the app for non-SNS users.

Big thank you to the SNS’s that have already onboarded. Sneed and Tendy DAO’s have both completed their onboarding and have canisters that are being tracked and topped up. Taco DAO has just started the onboarding process and are currently in the process of voting on the proposals for registering the custom functions with their DAO that will allow them to manage their Unicycle integration.

If any other SNS’s are interested in getting setup, please DM me and I’ll be happy to help walk you through the process and assist in submitting the appropriate proposals. For those that are curious the process looks roughly as follows:

  1. SNS registers a Setup Unicycle custom function on their governance canister that will call the SetupSNS method on the Unicycle backend when executed.
  2. Setup Unicycle custom function is executed via a proposal. Proposer passes a neuron ID that is hotkeyed to the unicycle backend canister and a starting custom function ID that tells unicycle what ID’s the DAO wants to use for its custom function registration (a continuous range of 13 functions is required).
  3. When setup is approved and executed, the Unicycle Backend will use the provided neuron to automatically propose the custom functions that allow DAO management of its unicycle configuration. Once these proposals are completed the DAO is fully set up with Unicycle and can begin using the function. The remainder of the steps are optional but will typically be desired for easier management and automation.
  4. Execute the Grant Admin custom function to specify a unicycle user as the SNS admin. This will allow canister tracking details to be set in unicycle by the admin without requiring SNS proposals.
  5. Set up automatic funding thresholds so when the DAO’s unicycle deposit account is low, a treasury transfer proposal will automatically be created to move ICP into the account. This proposal can be created via a proposal creation tool such as ic-toolkit, or it can be triggered by one of the admins specified in step 4 in the Unicycle web interface. Once this configuration is set, the next cycle check will notice a low balance (the balance will typically be at 0 until the DAO provides funds), and will create a proposal to transfer funds to the DAO controlled deposit account in Unicycle.

Once the admin (or SNS users via proposal) register tracked canisters and the automatic funding is in place, very little is required in terms of ongoing maintenance. Funds will be requested when they are needed, and otherwise, only changes to the configuration will need any sort of interactions.

Thanks to those who have checked out https://ic-unicycle.com/ and for the DAO’s who have opted into the service. Looking forward to providing more updates and improvements along the way. Let me know if anyone has any questions or needs help with any integrations.