Accounts and wallet
Named identities, funding, and the dev wallet.
Use account(name, opts?) for every named identity. The bare form creates an ephemeral key and
funds it with the default SUI amount on faucet-bearing local networks.
import { account } from '@mysten-incubation/devstack';
const alice = account('alice');
const ci = account('ci', { kind: 'env', key: 'ALICE_PRIVATE_KEY' });
const demo = account('demo', { kind: 'inline', privateKey: 'suiprivkey1...' });
const local = account('local', {
kind: 'keystore',
path: '~/.sui/sui_config/sui.keystore',
aliasOrAddress: 'local',
});Cross-coin funding uses direct coin members, not string records:
import { account } from '@mysten-incubation/devstack';
const alice = account('alice', {
funding: [{ coin: 'sui', amount: 2_000_000_000n }],
});Use wallet() or wallet({ accounts }) to expose the dev wallet server and generated dapp-kit
config:
import {
defineDevstack,
account,
HOST_SERVICE_PORT_TOKEN,
hostService,
sui,
wallet,
} from '@mysten-incubation/devstack';
const DEV_PORT = 5173;
const localnet = sui();
const alice = account('alice');
const bob = account('bob');
const devWallet = wallet({
accounts: [alice, bob],
});
const app = hostService({
name: 'app',
script: `pnpm exec vite --host 127.0.0.1 --strictPort --port ${HOST_SERVICE_PORT_TOKEN}`,
port: DEV_PORT,
ready: { kind: 'http' },
after: [devWallet] as const,
});
export default defineDevstack({ members: [localnet, app], stackName: 'main' });wallet({ accounts: 'all' }) expands to every account member in the final defineDevstack(...)
call. The wallet binds to 127.0.0.1 by default, stores its pairing token under the stack runtime
root, emits generated config at src/generated/dapp-kit/config.ts, and automatically allows the
stack-scoped dev-server route such as http://dev.<app>.localhost:5175. Add allowedOrigins only
for nonstandard browser origins.