Application Kits/Asset Tokenization

Deployment

Development setup and deployment

Login to SettleMint platform and create an organzation. For more details refer - 'Account setup guide'

Select "Add application" option and select "Asset tokenization kit".

Deploy asset tokenization kit

Select the network you will like to use and then on the next step, decide if you will be deploying development or production environment. Optionally, enable code studio to get access to smart contract and front end UI IDE within the platform UI.

Select asset kit resources

You can choose between development and production environments based on the stage and requirements of your application.


The development environment operates on a shared infrastructure within SettleMint’s managed SaaS offering. It is provisioned with a small resource pack, suitable for prototyping, testing, and early-stage development. This environment includes one validator node and one non-validator node, sufficient for basic functionality validation and integration testing.


The production environment, on the other hand, is deployed on a dedicated cluster and is provisioned with a medium resource pack by default. It is designed to support high availability, performance, and scalability for enterprise-grade deployments. The production setup includes four validator nodes and two non-validator nodes, ensuring fault tolerance and improved network consensus performance.


Both environments support dynamic resource scaling, allowing resource packs to be scaled up or down at any point based on application demand or usage patterns.


Custom deployment module for front end deployment

The Asset Tokenization Kit (ATK) Frontend UI is a containerized web application that provides a user interface for interacting with tokenized assets on the SettleMint platform. This guide covers the configuration and deployment of the frontend UI as a custom deployment within SettleMint.

Container Image Setup

The ATK Frontend UI is deployed using a prebuilt container image. Configure the following:

FieldDescriptionExample Value
Container ImageThe Docker image containing the frontend UI.ghcr.io/settlemint/asset-tokenization-kit:0.3.14
Exposed PortThe port on which the frontend serves HTTP traffic.3000
Registry Credentials (if private)Username and access token for private container registries.(Provided by DevOps)

Access Control

Define who can access the deployed frontend:

  • Anyone with the link – Public access (suitable for demos).
  • Members of the organization – Restricted to authenticated users within the SettleMint organization.

Environment Variables

The frontend requires the following environment variables to connect to backend services:

VariablePurpose
SETTLEMINT_INSTANCEInternal SettleMint instance identifier.
SETTLEMINT_ACCESS_TOKENAuthentication token for SettleMint APIs.
SETTLEMINT_HD_PRIVATE_KEYPrivate key for blockchain transaction signing.
SETTLEMINT_BLOCKSCOUT_UI_ENDPOINTURL for the blockchain explorer (Blockscout).
SETTLEMINT_HASURA_ENDPOINTHasura GraphQL engine endpoint.
SETTLEMINT_HASURA_DATABASE_URLDatabase connection URL (internal).
SETTLEMINT_HASURA_ADMIN_SECRETAdmin secret for Hasura access.
SETTLEMINT_PORTAL_GRAPHQL_ENDPOINTSettleMint Portal GraphQL API endpoint.
SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTSThe Graph indexing service endpoints.

Security Note:

  • Sensitive values (e.g., HD_PRIVATE_KEY, HASURA_ADMIN_SECRET) are masked in the UI.
  • Rotate credentials periodically following security best practices.

Custom Domains (Optional)

For production or client-facing deployments, bind a custom domain: e.g. https://demo.tokenmint.be/ This ensures a branded URL for end users.


The Asset Tokenization Kit Frontend UI can be deployed as a standalone service while maintaining integration with SettleMint's blockchain and backend infrastructure. Key benefits include:

  • Independent frontend management – Deploy UI updates without affecting other components.
  • Flexible access control – Configure visibility for internal testing or public demos.
  • Secure environment injection – Sensitive keys and endpoints are securely passed at runtime.
  • Custom domain support – Use branded URLs for professional deployments.

Local development

For local development, please go to our GitHub repository and follow the readme setup guide.

There are two ways to use this kit:

  1. Predeployed Setup - Using pre-deployed contracts (fastest)
  2. Customized Setup - Deploy your own contracts

Predeployed Setup (Fastest)

This is the fastest way to get started with the kit. It uses pre-deployed contracts, subgraphs, and ABIs.

# Install dependencies
bun install
 
# Login and connect to SettleMint
bunx settlemint login
bunx settlemint connect
 
# Generate types and start development server
cd kit/dapp
bun codegen:settlemint
bun addresses
bun dev

Browse to http://localhost:3000 to access the application. Create an account by clicking "Sign up" - the first account created will have admin privileges.

Customized Setup

If you want to deploy and use your customised contracts, subgraph, and ABIs, follow these steps:

Prerequisites

  1. Forge v0.3.0 - Install the latest Foundry from https://book.getfoundry.sh/getting-started/installation
  2. Node.js version >=20.18.1 - Required for The Graph CLI. We recommend using fnm for Node.js installation.

Deployment Steps

# Install dependencies
bun install
 
# Login and connect to SettleMint
bun settlemint login
bun settlemint connect
 
# Deploy contracts
cd kit/contracts
bun deploy:remote
 
# Deploy subgraph
cd ../subgraph
bun deploy:remote
cd ../../
 
# Codegen
bun codegen
 
# Setup dapp
cd kit/dapp
bun addresses
bun db:push
 
# Start development server
bun dev

Browse to http://localhost:3000 to access the application. Create an account by clicking "Sign up" - the first account created will have admin privileges.

Database Customization

To modify database schema:

  1. Update your schema definitions in the schema folder:

    # Navigate to schema directory
    cd kit/dapp/src/lib/db
  2. Apply your changes to the database:

    # Run in the kit/dapp directory
    cd kit/dapp
    bun db:push
  3. Ensure your updates are registered with Hasura by executing:

    settlemint hasura track -a
  4. Regenerate GraphQL types by running the following command in the root directory. It is important to use the --force flag to ensure the types are regenerated:

    bun codegen --force
  5. Launch the application to verify your changes:

    bun dev

Note: When modifying tables managed by Better Auth (user, session, account, verification), you may need to update additionalFields in kit/dapp/src/lib/auth/auth.ts. If user object field changes aren't reflected in the useSession hook, try clearing cookies and signing in again. See Better Auth database core schema for more information.

On this page