Table of Contents*
- Does it Work With ETH, LINK, LTC etc?
- Does it Work With Euros and Pounds?
- How Do I Fix Insufficient Funds Error?
- How Do I Fix Invalid Signature Error?
- What is in Layer.zip?
- Can You Implement This Locally Without AWS?
- Can I set the Limit Price to $X?
- How Do I Automatically Deposit Funds to Gemini?
- How Do I See My Order?
- How Do I See The Fees I’ve Paid?
- Why Aren’t My Withdrawals Processing?
- Why Won’t Gemini Support Email Me Back?
- All My Lambda Functions Disappeared
- Final Thoughts
*Nothing I post is financial advice
♊️ Sign Up for Gemini and get $10 of BTC when you Trade $100: https://gemini.com/share/ZVG91T
🎥 Original Video Tutorial: https://www.youtube.com/watch?v=h6r1h3am6kA
📉 Does it Work With ETH, LINK, LTC etc? 📉
Yes! Check out the symbols and minimums section of the Gemini API.
You’ll see below that not only do you need to update the symbol from btcusd to ethusd (for Ethereum) but you also need to update the tick size. The tick size for BTC is 8 the tick size for ETH is 6 etc. Updating this tick size allows us to get more accurate rounding in the price variable.
🇪🇺 Does it Work With Euros and Pounds? 🇪🇺
Yes! Similarly to the last answer, just check the symbols and minimums section of the Gemini API. You’ll see below that there are codes for USD 🇺🇸 EUR 🇪🇺 GBP 🇬🇧 and SGD 🇸🇬
Just replace btcusd in the code with your desired currency pair.
💰 How Do I Fix Insufficient Funds Error 💰
You’ll get this error if you don’t have enough currency in your account to make the trade. If the symbol you are trading is btcusd, you’ll need USD to execute the trade. Similarly, if you’re trading ethbtc you’ll be writing in the script how much BTC of ETH you want to buy (a little confusing). You can check to see how much of each currency you have in the Account balances and history tab of your Gemini account (Account in the top right -> Balances)
It should look something like that ^^ and should show you any holds that are being placed on your account by active trades or other situations that would lower your “Available to trade” balance.
🔑 How Do I Fix Invalid Signature Error 🔑
A few people have run into this error and it has been solved every time by generating new API Keys and readding them to your Lambda Function in AWS.
❓What is in Layer.zip?❓
Layer.zip contains the gemini-python and google sheets Python packages that I leveraged to write the scripts. We need this code to be hosted in AWS to run the code correctly.
I generated Layer.zip using my local python environment and Docker. If you’d like to generate your own layer.zip I was able to follow this great tutorial and (with 0 prior Docker experience) generate a working Layer.zip.
💻 Can You Implement This Locally Without AWS? 💻
Yes you can! Here’s a video of me implementing the script on iOS using Pyto and Siri Shortcuts:
Of course you can implement for free with your own Python environment on your Mac/PC. You’ll just need to pip install gemini-python and pip install gspread (if you want the spreadsheet functionality) to get the necessary code packages (you don’t need to do this in the AWS version because all those dependencies are packaged in Layer.zip)
🏷 Can I Set the Limit Price to $X 🏷
Yes! The script in the Siri Shortcuts video works by letting you set your own limit price. If you want to manipulate the code from Notion, you’ll just need to update the price variable from:
price = str(round(float(trader.get_ticker(“BTCUSD”)[‘ask’])*.999,2))
price = “30000”
In this example, we’re making a limit order where the limit price is $30,000. This has the benefit that your order will fill only when the price falls to $30,000 giving you a better execution price. But comes with the downside that if the price never falls to $30,000 your order will never fill.
The current line: price = str(round(float(trader.get_ticker(“BTCUSD”)[‘ask’])*.999,2))
Is taking the current spot price of Bitcoin (“BTCUSD”)[‘ask’] and setting the price of your order to .999 * current spot price (ie. if Bitcoin is trading at $35,000 your limit order will be made for $34,965). You can change that .999 factor to any other number you’d like if you want to try to get Bitcoin at a lower price.
Above is a comment thread answering the popular question: can I set the factor to be 0.9 / 0.85 / something lower than 0.999
In short, the answer is yes and usually you’ll be fine. When BTC (or whatever currency you’re trading) rips up and doesn’t come back down though you’ll end up with lots of orders on the book over a long period of time.
🤖 How Do I Automatically Deposit Funds to Gemini? 🤖
EDIT: I figured it out (rejoice 🥳), here’s a tutorial: https://youtu.be/IgC5K21EslQ
Unfortunately, I haven’t found a way to do this yet. Ally Bank, Schwab, and Capital One all refused to do recurring deposits to my Gemini account and there is no functionality in the current Gemini API to automate deposits.
If you find a bank that allows creating recurring deposits to Gemini please send me an email at firstname.lastname@example.org and I’ll give you credit (and love you forever).
I’ll update this thread (and probably make a video) if/when I figure that out.
As of now, this is the missing piece that would make the strategy fully automated.
My current strategy is to make one large deposit each month to cover all my monthly DCA.
🙈 How Do I See My Order? 🙈
Go to Account -> Settings -> Account and select ActiveTrader as your Trading Interface.
Your open orders should show at the bottom left of your trading interface
💸 How Do I Confirm The Fees I Paid? 💸
You should be getting an email to the email associated with your Gemini account every time an order fills that looks like this:
If not, go into Gemini -> Account -> Settings -> Notifications and make sure “Your limit order is complete” is selected.
If you still aren’t getting the emails, check your spam filter.
🏦 Why Aren’t My Withdrawals Processing? 🏦
If your withdrawals aren’t processing, first confirm that you’ve whitelisted the address that you’re trying to send to.
You can check this by going to Gemini -> Account -> Settings -> Approved Addresses
Additionally, when you try to make a withdrawal you’ll want to confirm that the funds you’re expecting to withdraw have settled.
By default the script will try to withdrawal the full amount of BTC/ETH that is “available for withdrawal”
If you deposited via ACH your funds will take ~7 days to settle within Gemini. Only after the funds have settled will they be considered to be available for withdrawal.
📧 Why Won’t Gemini Support Won’t Email Me Back? 📧
Contrary to what some people might think, I actually don’t work in Gemini support. I have heard though from quite a few people that Gemini’s email support is horrible. This mostly seems to be around account verification.
To avoid this problem I would suggest fully verifying your account before trading on the platform (I agree that this is not a great solution).
If you are already stuck in Gemini email support hell, I received feedback from one commenter who successfully escaped Gemini email support hell that sending a kind email explaining your situation and what you need to get unstuck helped a lot. Sometimes we have to check our egos to get what we want 😃
If this doesn’t work, I don’t really know what to tell you sorry! 😔
👻 All My Lambda Functions Disappeared! 👻
AWS has different regions that basically act as different environments. If all your functions disappeared you’re probably not in the region you originally created them in. Go up to the top right and click through the different regions to find where you created them.
To find out where you’ve created functions you can go into billing and see what is running.
🧠 Final Thoughts 🧠
Feel free to DM me on Twitter if you have any questions not covered here. This has been a really fun project and a ton of people have sent me screenshots of them getting this to work and saving a ton of $$$ on fees, so if you get stuck don’t despair! This is definitely doable, even with limited / no technical expertise.
If you can manage to avoid the dreaded Gemini email support system, this is still the lowest fee way to buy Bitcoin.
Onward and upward!