This guide shows how to add an existing Privy wallet to agent-wallet CLI (using your current Privy App + Wallet ID) and confirm it can sign.
- Privy App ID
- Privy App Secret (keep it safe)
- Privy Wallet ID (from your Privy dashboard)
This project only signs. It does not create or manage Privy wallets.
Use add privy to add a Privy wallet into wallets_config.json.
agent-wallet add privyOr pass the credentials non-interactively:
agent-wallet add privy \
--wallet-id my_privy_wallet \
--app-id <privy_app_id> \
--app-secret <privy_app_secret> \
--privy-wallet-id <privy_wallet_id>The CLI will guide you depending on your situation:
You will be prompted for:
- Privy app id
- Privy app secret (input hidden)
- Privy wallet id
You will see a selection prompt:
Select existing Privy wallet or enter new credentials
- Pick an existing Privy wallet → reuse app id / app secret
- Then enter only the new Privy wallet id
This lets you add multiple Privy wallets without retyping your app secret.
agent-wallet sign msg "hello" --wallet-id <your_privy_wallet_id> --dir /path/to/wallet-dirEVM tx can use a viem-style payload:
agent-wallet sign tx '{
"to": "0x0000000000000000000000000000000000000001",
"chainId": 1,
"gas": 21000,
"nonce": 0,
"maxFeePerGas": 1000000000,
"maxPriorityFeePerGas": 1000000,
"value": 0
}' --wallet-id <privy_evm_wallet> --dir /path/to/wallet-dirPrivy EVM does not require
--network. It follows thechainIdin the payload.
TRON requires raw_data_hex (from TronGrid/Tron API unsigned tx):
agent-wallet sign tx '{
"raw_data_hex": "abcd"
}' --wallet-id <privy_tron_wallet> --dir /path/to/wallet-dirYes. The CLI lets you reuse app id/secret and enter a new wallet id.
No. Privy uses the wallet’s chain type. EVM uses the payload chainId.
The app secret is stored in wallets_config.json (config provider). inspect redacts it.
Use the verification scripts to recover the TRON address and compare:
AGENT_WALLET_DIR=/path/to/wallet-dir \
AGENT_WALLET_PASSWORD='<your_password>' \
python packages/python/examples/verify_tron_privy_typed_data.pyTypeScript version:
AGENT_WALLET_DIR=/path/to/wallet-dir \
AGENT_WALLET_PASSWORD='<your_password>' \
npx tsx packages/typescript/examples/verify-tron-privy-typed-data.ts- First time: enter app id / app secret / wallet id
- Afterwards: select existing app id/secret → enter only new wallet id
- EVM / TRON: Privy does not need
--network; provide chain-specific payloads