Skip to main content

Welcome to Solana Stack Exchange

site icon

Solana Stack Exchange is a question and answer site for Solana software users and developers. It's built and run by you as part of the Stack Exchange network of Q&A sites. With your help, we're working together to build a library of detailed answers to every question about Solana.

We're a little bit different from other sites. Here's how:


Ask questions, get answers, no distractions

This site is all about getting answers. It's not a discussion forum. There's no chit-chat.

Just questions...

...and answers.

Good answers are voted up and rise to the top.

The best answers show up first so that they are always easy to find.

The person who asked can mark one answer as "accepted".

Accepting doesn't mean it's the best answer, it just means that it worked for the person who asked.

How many instructions can I add to a single transaction?

14

I am looking to create a bulk spl-token airdrop script using nodeJS and Solana npm packages.

I know that we can add multiple instructions to a transaction but I suppose, each instruction would have a different size.

How to calculate how many (X type of) instructions can be added to a transaction?

2 Answers

4

I don't think there is a limit, but every transaction must stay below 1232 bytes. So you can calculate it when you know the size of your instructions. (1232 bytes - (signers, feepayer, account keys etc) / instruction size) should give you a good idea.

3

I recently solved this problem by creating 2 transactions. Let's call it tx 1 and 2.

If I added an instruction to tx 2 and serialize it successfully without an exception, I add it to tx 1.

I ran this over a loop, and found 55 instructions to be the limit for a transaction for my particular use case.

I then sign and transmit tx 1.


Get answers to practical, detailed questions

Focus on questions about an actual problem you have faced. Include details about what you have tried and exactly what you are trying to do.

Ask about...

  • Specific issues with Solana
  • Real problems or questions that you’ve encountered

Not all questions work well in our format. Avoid questions that are primarily opinion-based, or that are likely to generate discussion rather than answers.

Questions that need improvement may be closed until someone fixes them.

Don't ask about...

  • Anything not directly related to Solana
  • Questions that are primarily opinion-based
  • Questions with too many possible answers or that would require an extremely long answer

Tags make it easy to find interesting questions

All questions are tagged with their subject areas. Each can have up to 5 tags, since a question might be related to several subjects.

Click any tag to see a list of questions with that tag, or go to the tag list to browse for topics that interest you.

How many instructions can I add to a single transaction?

14

I am looking to create a bulk spl-token airdrop script using nodeJS and Solana npm packages.

I know that we can add multiple instructions to a transaction but I suppose, each instruction would have a different size.

How to calculate how many (X type of) instructions can be added to a transaction?


You earn reputation when people vote on your posts

Your reputation score goes up when others vote up your questions, answers and edits.

+10 question voted up
+10 answer voted up
+15 answer is accepted
+2 edit approved

As you earn reputation, you'll unlock new privileges like the ability to vote, comment, and even edit other people's posts.

Reputation Privilege
15 Vote up
50 Leave comments
125 Vote down (costs 1 rep on answers)

At the highest levels, you'll have access to special moderation tools. You'll be able to work alongside our community moderators to keep the site focused and helpful.

Reputation Privilege
500 Vote to close, reopen, or migrate questions
1000 Edit other people's posts
2000 Access to moderation tools
see all privileges

Improve posts by editing or commenting

Our goal is to have the best answers to every question, so if you see questions or answers that can be improved, you can edit them.

Use edits to fix mistakes, improve formatting, or clarify the meaning of a post.

Use comments to ask for more information or clarify a question or answer.

You can always comment on your own questions and answers. Once you earn 50 reputation, you can comment on anybody's post.

Remember: we're all here to learn, so be friendly and helpful!

9

I don't think there is a limit, but every transaction must stay below 1232 bytes. So you can calculate it when you know the size of your instructions. (1232 bytes - (signers, feepayer, account keys etc) / instruction size) should give you a good idea.

edit

Depending on what frame work you use you should be able to call .serialize on the transaction before you send it. Then you can check the size and add either 64 or 96 bytes on top for a signature. Can read up on transaction format here: docs.solana.com/developing/programming-model/transactions - Jonas H. Sep 14, 2022 at 9:12

add a comment


Unlock badges for special achievements

Badges are special achievements you earn for participating on the site. They come in three levels: bronze, silver, and gold.

In fact, you can earn a badge just for reading this page:

 Informed Read the entire tour page
 Student First question with score of 1 or more
 Editor First edit
 Good Answer Answer score of 25 or more
 Civic Duty Vote 300 or more times
 Famous Question Question with 10,000 views

see all badges


Sign up to get started

Signing up allows you to:

  • Earn reputation when you help others with questions, answers and edits.
  • Select favorite tags to customize your home page.
  • Claim your first badge:  Informed
Looking for more in-depth information on the site? Visit the Help Center

Solana Stack Exchange is part of the Stack Exchange network

Like this site? Stack Exchange is a network of 182 Q&A sites just like it. Check out the full list of sites.

Stack Exchange