Frequently asked questions

Is there an Alchemy token?

Nope! We do not currently have an Alchemy token sale but our users will be the first to know if we ever do ;)

How can I invest in Alchemy?

Alchemy is currently a private company, if you're interested in investing, tweet out why you're interested and tag us @AlchemyPlatform.

I'm new to blockchain development, how should I get started?

If you are completely new to the blockchain space, you should check out our Blockchain 101 guide to learn more about the ins and outs of the technology behind blockchain, and the advantages of decentralization.

If you already know some blockchain stuff and are ready to dip your toes in development here are three great tutorials to check out:

  1. ​Simple Web3 Script​

Does Alchemy store my private keys?

No, we will never store your private keys, in fact, we never even see them since we only accept signed transactions. This also means we cannot sign and send transactions for you. For help on how to send transactions using Alchemy, check out this guide.

What are "Already Known" errors?

Generally "already known" means the transaction is on the node and is in a pending state. A good solution here is to double check that your transaction nonces are correct and that there aren't any currently pending transactions in your mempool.

Can you change the 5s timeout:execution aborted (timeout = 5s)?

Unfortunately, this is a fixed timeout configured by geth so we are unable to change it. This typically occurs with expensive or heavy eth_calls . The best workaround is to break up your eth_call into smaller bites to ensure they don't get timed out.

What happens if I run into my capacity limit?

If you run into your capacity limit, we recommend switching on autoscale which will allow your app to continue functioning with on-demand compute.

How can I access Archive data?

Archive data is free and available for all of our customers, no additional set up necessary!

How do I get the timestamp for a transaction?

A transaction object will have a block number associated with it, the block number is Ethereum's measure of time, however, if you want a standard timestamp you can easily get that by making a call to eth_getBlockByNumber and specifying the blockNumber field. Here is an example request. If you only have the transaction hash, you can get the full object by making a request to eth_getTransactionByHash.

Why can't I invite a user who is already on a team?

You can! While we don't allow a single email to be on multiple teams due to UX concerns, one thing you can do is invite the user by appending a + to their email. For example, a user with email [email protected] could use [email protected] and [email protected] to be on two different teams, while still getting all their emails to one inbox!

Are there limits on my getLogs requests?

In order to ensure maximum reliability for your calls, you can make eth_getLogs requests with up to a 2K block range and no limit on the response size. You can also request any block range with a cap of 10K logs in the response.

If you need to pull logs frequently, we recommend using WebSockets to push new logs to you when they are available.

How do I request a feature?

​Join our discord and post in the #feature-request channel!

What are Alchemy's "Enhanced APIs"?

Glad you asked! We've built a bunch of higher level APIs to make your life as an Ethereum developer much easier. With our enhanced APIs you can access things like token balances and information, transaction history for given addresses, notifications about transaction activity, and more. Check out the full list here.

Where are Alchemy's servers located?

Alchemy's servers are currently located on US East, however we serve production traffic from 99% of countries in the world and see great latency in all regions.

Which clients does Alchemy support?

Alchemy currently supports Geth and OpenEthereum node clients.

How do I know the latest block is accurate?

Great question! We've spent years developing an enhanced infrastructure and distributed node system to get the most consensus on the canonical block in the fastest amount of time. We'll only publish information if it's agreed upon by many of our nodes.

Do you support compressed response payloads?

We do support compressed response payloads by using a Content-Encoding of gzip on all our responses.

What are compute units? Why do you have them?

Compute units are a way of measuring the resources it takes to serve your traffic, we implemented this to make sure pricing is sustainable and cost-effective as you scale. Check out this blog post for the reason we decided to implement a compute unit system.

You can see a breakdown of each method and its associated compute unit here.

How do I distinguish between a contract address and a wallet address?

A super easy way to distinguish between these two addresses is by calling eth_getCode, which will return contract code if it's a contract and nothing if it's a wallet. Here's an example of both using our composer tool:

What are best practices for avoiding re-orgs when calling JSON-RPC methods?

Alchemy supports EIP-1898, which adds blockHash to all JSON-RPC methods that accept a default block parameter. By allowing methods with a block number parameter to also accept a block hash parameter, EIP-1898 protects against re-orgs.

For instance, if a user executes eth_call for block number 10000, but the network undergoes a re-org causing the block 10000 to change, it is unclear if the call evaluated at the old block or the new one.

Example: eth_getBalance

Non EIP-1898 Param

EIP-1898 Param

["0x<some-address>", "0x<some-block-number>"]

["0x<some-address>", {"blockHash": "0x<some-blockhash>"}]

My question isn't here, where can I get help?

Don't worry, we got you. Check out our support page for plenty of options!