Skip to main content
This quickstart walks through the full Portfolio Wallet lifecycle: reviewing yield sources, creating a wallet, funding it, and initiating a withdrawal.

Prerequisites

Create your API key at portal.groundtech.co, then export it below.
See API Conventions for authentication, pagination, rate limits, and error handling.

1. Review the yield source catalog

Fetch the current yield source catalog, then decide the allocation you want to use for wallet creation. This sandbox example uses the deployed USTB, stablecoin-explicit JAAA, and token-specific JTRSY rows; omit any row that is not present in your live response.

2. Create a Portfolio Wallet

Choose the allocation strategy you’d like for your wallet:
The create response returns immediately with status: "creating" and an empty depositAddresses object. Save the wallet ID and poll GET /v2/wallets/{id} for the deposit address on your intended network. Wallet activity status and address readiness are independent: an idle wallet may still be provisioning addresses, and a returned network address is usable while other addresses are being prepared. Stellar requires a separate deposit setup. Follow address readiness and use the returned network address before funding.

3. Deposit a stablecoin

Send a supported stablecoin to the returned address for your chosen network. First check address readiness; in sandbox, use that network’s supported test asset. You can get Sepolia USDC from the Circle faucet or bridge testnet ETH via the Sepolia faucet.

4. Check balance and yield

Sandbox keys depositAddresses by explicit testnet chain (ethereum_sepolia, solana_devnet, stellar_testnet, and tron_shasta). Production uses canonical chain names (ethereum, base, arbitrum, polygon, solana, stellar, and tron). Stellar mainnet is available in beta for enabled production environments. Stellar addresses appear only after their one-time setup. Use the mock USDT faucet if you need test USDT on Ethereum Sepolia. See Supported Chains.

5. Preview a withdrawal

The estimate is calculated when you request the preview. Date values above are illustrative; use the response you receive when presenting withdrawal timing.

6. Initiate a withdrawal

7. Track the withdrawal

Poll the withdrawal or subscribe to webhooks:
The withdrawal moves through processing and then a terminal status such as completed, partially_completed, failed, or cancelled. If approval is required, a payout leg and its external payout step enter pending_customer_approval; complete the approval in Ground Portal or through the approval integration enabled for your organization. See Transaction Approvals.

Next steps