Third-Party Protocol Integration
Programmatically instantiate liquidity pools, query live bonding curves, and deploy Move tokens directly from your own smart contracts and decentralized applications.
Battle-Tested Move
Full Move 2024 edition compatibility with formal verification safety.
Instant Execution
Initialize pools and receive LP position certificates atomically in a single PTB.
Minimal Fees
0.8 SUI pool creation fee with free add/remove liquidity operations.
Walrus Integration
Native decentralized storage for metadata, logo icons, and audit certificates.
Move Smart Contract Integration
Invoke the Factory directly from your custom Move package.
module my_protocol::pool_creator {
use pumpsui_factory::factory::{Self, Factory};
use pumpsui_factory::lp_coin::LP;
use sui::coin::Coin;
use sui::sui::SUI;
use sui::clock::Clock;
use sui::tx_context::{Self, TxContext};
use sui::transfer;
public entry fun create_pool_for_token<TokenA, TokenB>(
factory: &mut Factory,
token_a: Coin<TokenA>,
token_b: Coin<TokenB>,
payment: Coin<SUI>,
clock: &Clock,
ctx: &mut TxContext
) {
let (pool_id, lp_tokens) = factory::create_pool_from_contract<TokenA, TokenB>(
factory,
payment, // 0.8 SUI pool creation fee
token_a,
token_b,
clock,
ctx
);
// Transfer LP position certificate to transaction sender
transfer::public_transfer(lp_tokens, tx_context::sender(ctx));
}
}TypeScript & Modern Sui SDK
Construct a Programmable Transaction Block using @mysten/sui/transactions.
import { Transaction } from '@mysten/sui/transactions';
const FACTORY_ID = "0x7fde6f522facdf8708aca3152edc5725f5c00ee5e3341b8baac28cb17962cb3e"; // Sui Mainnet
export async function createPoolPTB(tokenAType: string, tokenBType: string, sender: string) {
const tx = new Transaction();
const [feeCoin] = tx.splitCoins(tx.gas, [tx.pure.u64(800_000_000)]); // 0.8 SUI
const [poolId, lpCoin] = tx.moveCall({
target: `${FACTORY_ID}::factory::create_pool_from_contract`,
typeArguments: [tokenAType, tokenBType],
arguments: [
tx.object(FACTORY_ID),
feeCoin,
tx.object(tokenACoinId),
tx.object(tokenBCoinId),
tx.object('0x6'), // Sui Clock object
],
});
tx.transferObjects([lpCoin], tx.pure.address(sender));
return tx;
}On-Chain Deployments
Verified package IDs and shared Factory object coordinates.
| Network | Factory Shared Object ID | Move Package ID |
|---|---|---|
| Mainnet | 0x7fde6f522facdf8708aca3152edc5725f5c00ee5e3341b8baac28cb17962cb3e | 0x9a67f826e3d9ad2cdc7d735466435a9d6da0428705a3eb0840be271f2e62dcb6 |
| Testnet | 0xda14593db0d4258202871d40ffb73c0e0bee1d9064d1b076a666946e3eb0a020 | 0x47be8b5d9f9fbac048c54ca8ce2766bb1fa8f8d459a0ff1f19af615efe9f5415 |
Continue to Integration Quickstart
Walk through step-by-step pool deployment and contract verification.