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
- Connect your wallet in the Contracts Dashboard.
- Select a contract template (SIP-10 Token, NFT, or AMM Pool).
- Configure the contract parameters.
- Review and deploy your contract → sign the transaction.
- 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
- Select a template and configure parameters
- Review the generated contract code
- Confirm deployment and sign the transaction
- 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.