Simulate static wallet deposit
Static WalletsAPI REFERENCE

Simulate static wallet deposit

POST/v1/static-wallets/{staticWalletId}/simulate

Drive a synthetic deposit through its lifecycle (no on-chain activity, no balance credit). Available for test-coin assets only.

Example request

A minimal request you can copy and run.

curl -X POST https://api.suward.com/v1/static-wallets/<static_wallet_id>/simulate \
-H "X-Api-Key: $SUWARD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":"1000000","asset":"USDT_ETHEREUM"}'

Path Parameters

NameTypeRequiredDescription
staticWalletIdstringyesStatic wallet ID

Request body

NameTypeRequiredDescription
amountstringnoDeposited amount to simulate, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
assetnoAsset id-string of the simulated deposit (see GET /v1/assets), e.g. USDT_ARBITRUM.
statusnoTarget lifecycle stage to drive the simulated deposit to.
transferIndexstringnoOptional index of the transfer within the transaction, as a string-encoded integer.
txHashstringnoOptional synthetic transaction hash; a random one is generated when omitted.
Request · JSON
{
"amount": "1000000",
"asset": "USDT_ETHEREUM"
}

Response

NameTypeRequiredDescription
acceptedAtintegernoUnix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance.
addressstringnoOn-chain address that received the deposit (the static wallet's address).
amountstringnoGross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
assetnoAsset of the deposit, as an asset id-string (see GET /v1/assets).
confirmedAtintegernoUnix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation.
createdAtintegernoUnix-milliseconds timestamp when the deposit record was created.
detectedAtintegernoUnix-milliseconds timestamp when the deposit was first detected on-chain.
externalIdstringnoExternalID is the static wallet's externalId, denormalized onto the deposit.
feestringnoPlatform fee on this deposit, integer string in the asset's smallest unit: max(0.4% of the amount, $1 equivalent). The $1 floor is 0 for assets without a published USD price.
idstringnoUnique Suward identifier of the deposit.
invalidatedAtintegernoUnix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated.
netAmountstringnoAmount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit.
networkFeestringnoEstimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit.
projectIdstringnoIdentifier of the project that owns this deposit.
staticWalletIdstringnoIdentifier of the static wallet that received this deposit.
statusnoDeposit lifecycle status. detected: seen on-chain, awaiting confirmations. accepted: safe confirmations reached, credited (non-final). confirmed: finalized (terminal). ignored: the asset is not on the wallet's allow-list, so the deposit is not credited. invalidated: dropped after detection, e.g. by a chain reorg.
transferIndexstringnoIndex of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction.
txHashstringnoOn-chain transaction hash of the deposit.
updatedAtintegernoUnix-milliseconds timestamp when the deposit was last updated.
Response · JSON
{
"acceptedAt": 0,
"address": "0xabc…def",
"amount": "100000000",
"asset": "USDT_ETHEREUM",
"confirmedAt": 0,
"createdAt": 0,
"detectedAt": 0,
"externalId": "order_abc123",
"fee": "1000000",
"id": "obj_abc123",
"invalidatedAt": 0,
"netAmount": "100000000",
"networkFee": "150000",
"projectId": "obj_abc123",
"staticWalletId": "obj_abc123",
"status": "detected",
"transferIndex": "0",
"txHash": "0x1234…abcd",
"updatedAt": 0
}