Create a Pool
Guides

Create a Pool

Walkthrough of deploying a new payment pool via web UI or CLI.

Learn how to deploy a new SplitPay payment pool on Stellar Testnet.

Goal & Requirements

  • Goal: Deploy an on-chain Pool with unique ID, designated owner, and supported asset.
  • Requirements: Stellar CLI installed, funded Testnet account, and deployed SplitPay contract ID.

Step 1: Choose Supported Asset

On Stellar Testnet, use the native XLM Stellar Asset Contract:

CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC

Step 2: Deploy Pool via Stellar CLI

CONTRACT="CCOXHXGFTYVRRCJ7U32QZJCWXDTNQLRMDS3IAGW5MGFEWOUEXNYYKLHF"
ASSET="CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC"
OWNER_ADDR=$(stellar keys address deployer)
stellar contract invoke \
--id "$CONTRACT" \
--source deployer \
--network testnet \
-- \
create_pool \
--pool_id 1 \
--owner "$OWNER_ADDR" \
--asset "$ASSET"

Step 3: Alternative — Create via Web UI

Alternatively, open splitpay.samkiel.dev/pools/new, connect your Freighter wallet, fill in the pool ID and asset address, and sign the invocation.

Expected Result & Verification

Verify the pool exists by querying contract state:

stellar contract invoke \
--id "$CONTRACT" \
--source deployer \
--network testnet \
-- \
get_pool \
--pool_id 1

Troubleshooting

Error: PoolAlreadyExists (16): A pool with this ID already exists. Increment your pool_id to an unused integer.

Error: NotInitialized (2): The SplitPay contract has not had its administrator initialized. Run initialize first.