Skip to content

Charisma Launchpad

A powerful platform for deploying and managing Clarity smart contracts on the Stacks blockchain. Create, deploy, and interact with fungible tokens, NFTs, and AMM pools with just a few clicks.

Why Charisma Launchpad?

  • No-code deployment→ deploy smart contracts without writing any code.
  • Pre-built templates→ standardized contracts for tokens, NFTs, and AMM pools.
  • Contract management→ easily interact with your deployed contracts through a simple UI.
  • Gas optimization→ our templates are optimized for minimal gas consumption.

Quick-start

  1. Connect your wallet in the Contracts Dashboard.
  2. Select a contract template (SIP-10 Token, NFT, or AMM Pool).
  3. Configure the contract parameters.
  4. Review and deploy your contract → sign the transaction.
  5. Your contract will be deployed to the Stacks blockchain and will appear in your dashboard.

Contract Templates

We provide several pre-built templates to simplify your smart contract deployment:

SIP-10 Fungible Token

Standard-compliant fungible tokens with customizable parameters:

  • Token name, symbol, and decimals
  • Initial supply and distribution
  • Minting and burning permissions
  • Metadata URI configuration
(impl-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait)

(define-fungible-token example-token)

(define-constant contract-owner tx-sender)
(define-constant err-owner-only (err u100))
(define-constant err-not-token-owner (err u101))

;; Read-only functions
(define-read-only (get-name)
  (ok "Example Token"))

(define-read-only (get-symbol)
  (ok "EXT"))

(define-read-only (get-decimals)
  (ok u6))

(define-read-only (get-balance (who principal))
  (ok (ft-get-balance example-token who)))

(define-read-only (get-total-supply)
  (ok (ft-get-supply example-token)))

(define-read-only (get-token-uri)
  (ok (some "https://charisma.app/api/v1/metadata/SP123...ABC.example-token")))

;; Minting and transferring
(define-public (transfer (amount uint) (sender principal) (recipient principal) (memo (optional (buff 34))))
  (begin
    (asserts! (is-eq tx-sender sender) err-not-token-owner)
    (try! (ft-transfer? example-token amount sender recipient))
    (match memo to-print (print to-print) 0x)
    (ok true)
  ))

(define-public (mint (amount uint) (recipient principal))
  (begin
    (asserts! (is-eq tx-sender contract-owner) err-owner-only)
    (ft-mint? example-token amount recipient)
  ))

Liquidity Pool (AMM)

Automated Market Maker pools for token swapping:

  • Constant product AMM (x * y = k)
  • Customizable fee structure
  • Liquidity provider token issuance
  • Swap, add liquidity, and remove liquidity functions
;; Simple AMM Liquidity Pool
;; This is a simplified liquidity pool contract for illustration

(impl-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.pool-trait.pool-trait)

(define-constant token-x-contract 'SP123...ABC.token-x)
(define-constant token-y-contract 'SP123...ABC.token-y)
(define-constant fee-bps u30) ;; 0.3% fee
(define-constant contract-owner tx-sender)

;; State management
(define-data-var token-x-balance uint u0)
(define-data-var token-y-balance uint u0)

;; Read-only functions
(define-read-only (get-info)
  (ok {
    token-x: token-x-contract,
    token-y: token-y-contract,
    balance-x: (var-get token-x-balance),
    balance-y: (var-get token-y-balance),
    fee-bps: fee-bps,
    owner: contract-owner
  })
)

;; Add liquidity
(define-public (add-liquidity (x-amount uint) (y-amount uint))
  (let (
    (x-balance (var-get token-x-balance))
    (y-balance (var-get token-y-balance))
  )
    ;; Transfer tokens to pool
    (try! (contract-call? token-x-contract transfer x-amount tx-sender (as-contract tx-sender) none))
    (try! (contract-call? token-y-contract transfer y-amount tx-sender (as-contract tx-sender) none))
    
    ;; Update balances
    (var-set token-x-balance (+ x-balance x-amount))
    (var-set token-y-balance (+ y-balance y-amount))
    
    (ok true)
  ))

Deploying Contracts

Our platform simplifies the deployment process with a user-friendly interface. Behind the scenes, we use the Stacks blockchain API to broadcast your contract deployment transaction.

Deployment Process

  1. Select a template and configure parameters
  2. Review the generated contract code
  3. Confirm deployment and sign the transaction
  4. Wait for confirmation (typically 5-10 seconds)

Interacting with Contracts

Once deployed, you can interact with your contracts directly from our dashboard:

  • Call read-only functions→ check balances, token info, pool statistics.
  • Execute public functions→ transfer tokens, add liquidity, swap tokens.
  • Monitor transactions→ view transaction history and status.
  • View contract details→ see contract interface, source code, and deployment info.

Tips & Best Practices

  • Test on Testnet First→ Always deploy to testnet before mainnet to verify functionality.
  • Secure Owner Keys→ Contract owner privileges are tied to the deploying wallet.
  • Check Gas Requirements→ Ensure you have enough STX to cover deployment costs.
  • Set Appropriate Access Controls→ Carefully configure who can mint, burn, or modify your tokens.