SDK

Quickstart

Create a stream by handle on Sui testnet in a few lines.

Quickstart

Pay someone by StreamLine handle using an Ed25519 keypair.

1. Create a client

import { SuiClient } from "@mysten/sui/client";
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
import { decodeSuiPrivateKey } from "@mysten/sui/cryptography";
import {
  StreamLine,
  createKeypairSigner,
  resolveNetworkConfig,
} from "@streamline/sdk";

const config = resolveNetworkConfig("testnet");
const client = new SuiClient({ url: config.fullnodeUrl });

const { secretKey } = decodeSuiPrivateKey(process.env.SUI_PRIVATE_KEY!);
const keypair = Ed25519Keypair.fromSecretKey(secretKey);

const sl = new StreamLine({
  network: "testnet",
  signer: createKeypairSigner({ keypair, client }),
  client,
});

2. Resolve (optional)

const who = await sl.resolve("alice@streamline");
console.log(who?.address, who?.displayName);

3. Create a stream

const { digest, streamId } = await sl.stream.to("alice@streamline", {
  amountUsdc: 100,
  durationDays: 14,
  milestones: [{ name: "Delivery", amountUsdc: 100 }],
});

console.log(digest, streamId);

The signer must hold enough test USDC for amountUsdc. Use the app faucet on testnet if needed.

4. Read status

if (streamId) {
  const status = await sl.streams.get(streamId);
  console.log(status.state, status.remaining);
}

Smoke script

From packages/sdk:

SUI_PRIVATE_KEY=suiprivkey… RECIPIENT=alice@streamline npm run example:pay

See examples/pay-by-name.ts.

On this page