Getting Stellar transactions successfully submitted to the network can be a chore. You've got a lot to think about between XLM fees, sequence numbers, block times, retries, rate limits, ledger limits, and more. This gets even trickier when trying to submit smart contract invocations. Soroban contracts can't pay Stellar transaction fees and they maintain nonces not sequence numbers.
The Launchtube service aims to alleviate all of these challenges and complexities by giving you an API which accepts Soroban ops and then handles getting those entries successfully submitted to the network. No XLM or G-addresses required! Just simulate and sign your Soroban ops, submit them to Launchtube, and we'll handle getting them onchain. Too easy!
Caution
Launchtube is an experimental service and while SDF maintains a mainnet implementation we make no guarantees about its stability, availablility or longevity. Do not use SDF's Launchtube service for mission-critical production services.
Testnet
https://testnet.launchtube.xyz
Mainnet
https://launchtube.xyz
Authorization
:Bearer {jwt token}
Note
- For Testnet JWT tokens just open https://testnet.launchtube.xyz/gen
- For Mainnet tokens drop a note in the
#launchtube
channel in our Discord
Submit a transaction
Important
Credits are spent with progressive levels of granularity as the transaction moves through the backend
- Initially upon submission
100_000
credits are spent - Assuming your tx simulates successfully, those
100_000
credits are refunded and the simulation bid fee is spent - If your tx submission is successful the bid fee is refunded and the final tx fee is spent
This ensures a fair and predictable system without restrictive rate limits by incentiving properly formed transactions
-
fee
(optional)Number of credits (stroops) you want to spend on the inclusion fee to submit the transaction
AND
-
xdr
Transaction you want submitted as an
XDR
encodedString
OR
-
func
xdr.HostFunction
encoded as anXDR
String
-
auth
Array of
xdr.SorobanAuthorizationEntry
encodedXDR
String
s
Content-Type
:x-www-form-urlencoded
The response of the transaction submission as JSON
assuming it was successful. Otherwise a (hopefully) useful JSON
error
X-Credits-Remaining
:String
numeric value of the token's remaining credits (stroops)
Get the remaining credits (stoops) available for your token
String
numeric value of the token's remaining credits (stroops)
Webpage form to activate your token to enable usage of the API
-
token
The
{jwt token}
you were given and wish to activate
The API endpoint used by the GET
/
webpage form to activate your token
-
token
The
{jwt token}
you were given and wish to activate
Content-Type
:x-www-form-urlencoded
Webpage form to create and activate a new token
-
code
The claim
{claim code}
you were given and wish to use to create and activate a new token with
The API endpoint used by the GET
/claim
webpage form to create and activate new tokens via claim codes
-
code
The claim
{claim code}
you were given and wish to use to create and activate a new token with
Content-Type
:x-www-form-urlencoded
HTML
page with the newly activated token you can use as the {jwt token}
to authenticate the service
Authorization
:Bearer {auth token}
If you are a member of the SDF and need an auth token let [email protected] know
Generate a list of new credit JWT tokens
PNG
QR code image linking to {location.origin}/claim?code={claim code}
.
X-Claim-Code
:String
the claim code you can use to create new tokens
[!NOTE]
For SDF members only. If you open this page without an Authorization header it will be an HTML form to input your auth token which when saved will include it as a cookie which will allow you to generate QR codes right on the page whenever you refresh the page.
Generate a list of new credit JWT tokens
-
ttl
The number of seconds these tokens should live for
-
credits
The number of credits these tokens can spend (in stroops)
-
count
The number of unique new tokens to generate (max of 100)
JSON
array of tokens which will be what you hand out like candy
Delete a previously generated token
-
sub
The JWT
sub
claim of the token you want to delete
OK
Run a SQL query on the database
[!CAUTION]
Be careful! I don't do any query validation before running your query so you could easily bork the database with an erroneous query. So don't do that
-
query
SQL query you want to run. e.g.
SELECT * FROM Transactions LIMIT 100
-
args
Positional arguments for the query. Include as strings in an array. e.g.
["arg1", "arg2"]
Content-Type
:x-www-form-urlencoded
JSON array of results from the query (if any) e.g.
[
{
"Sub": "712f3af6061d26ac4c573151e116547a3b58b364fcf5a6df8f1a5916d540cae3",
"Tx": "40833f9c1b6e3187f7ff915a2bbad55e422650a283d3d13d941a5eaf81abaed7"
},
{
"Sub": "712f3af6061d26ac4c573151e116547a3b58b364fcf5a6df8f1a5916d540cae3",
"Tx": "f5b4d4638944ffab6ca693fe4036275c4822dd46e7e0f558a4e53a38f704fb45"
},
...
]
Sub
is the token's sub
claim and Tx
is the transaction hash
Get information about the sequencer Durable Object. You very probably don't ever need to run this. It's really just for system maintainers doing health or debug checks
Review the endpoint code for available params
JSON
object with information about the sequencer. Again, review the code for the exact shape of the response