Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Cardano Tx Submission Service

A micro-service that accepts Cardano transactions and relays it to cardano-submit-api. The goal is to intercept the transaction and provide statistics / customization on how to handle the submission flow.


System Requirements

Installing dependencies


This guide assumes:

  • That you have compiled cardano-node, you have it running and fully synced to your intended network.
  • That you have compiled cardano-submit-api, It is compiled along when you do cabal build all the cardano-node repository.
  • That you have a running postgresql instance.
  • Signed up for a free Blockfrost API account for the intended network.


OS Dependencies

sudo apt install -y libc6 libgcc1 libgssapi-krb5-2 libssl1.1 libstdc++6 zlib1g build-essential

Install .NET 6.0.101

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.101-linux-x64.tar.gz -C $HOME/dotnet
rm dotnet-sdk-6.0.101-linux-x64.tar.gz
# Add this to your .bashrc or .zshrc
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
export PATH=$PATH:$HOME/.dotnet/tools

Check if .NET is installed properly

# reload shell
exec bash
exec zsh
# check version
dotnet --version
#> 6.0.101
# install entity framework core global command line tool
dotnet tool install --global dotnet-ef

Running cardano-submit-api

cardano-submit-api --config rest-config.json --mainnet --socket-path db/node.socket

The rest-config.json file can be downloaded officially from IOHK:

Once it is running you should see something like this:

Running server on

Installing, Building and Running the TxSubmit Service

Clone the github repository:

git clone
cd ADAPH.TxSubmit

Edit the configuration

Find the file appsettings.sample.json and rename it to appsettings.json

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "TxSubmitDb": "Host=<ip>;Port=<port>;Database=<database name>;Username=<username>;Password=<password>"
  "CardanoTxSubmitEndpoint": "http://localhost:8090/api/submit/tx",
  "BlockfrostProjectId": "<blockfrost project id>",
  "CardanoNetwork": "<mainnet or testnet>"

Replace the values as necessary.

Seed the database

dotnet ef database update

Build & Run the code

If everything went well, you should see something like this:

2|ADAPH.TxSubmit  | info: Microsoft.Hosting.Lifetime[14]
2|ADAPH.TxSubmit  |       Now listening on: http://localhost:1337
2|ADAPH.TxSubmit  | info: Microsoft.Hosting.Lifetime[0]
2|ADAPH.TxSubmit  |       Application started. Press Ctrl+C to shut down.
2|ADAPH.TxSubmit  | info: Microsoft.Hosting.Lifetime[0]
2|ADAPH.TxSubmit  |       Hosting environment: Production
2|ADAPH.TxSubmit  | info: Microsoft.Hosting.Lifetime[0]

Congratulations you can now submit transactions via http://localhost:1337/api/v1.0/tx/submit 🚀🚀🚀

You can setup a reverse proxy webserver if you want to serve this publicly.


It should be very easy to customize the dashboard to your branding but it is not yet streamlined into the configuration.

Simply open Pages/Index.razor and start customizing!

If you have any questions don't hesitate to contact us at:

Do you like our project? feel free to donate some $ADA 😜: