Hold a test stock, get paid a dividend every hour
The testnet’s market account issued six test assets, five test stocks (tTSLA, tNVDA, tAAPL, tAMZN, tPLTR) and a test note, and pays each one a test dividend of 100 aeUSD every hour to its INCOME kind. Every holder accrues their share pro rata, block by block, and claims whenever they like. Testnet, tokens have no value: the stocks are not shares of any company and aeUSD here is test money.
Run the setup block first.
1. Claim from the faucet
One faucet claim sends, in one transaction, 10 AEVA for gas, 1 000 aeUSD, a
testnet.verified credential and 10 shares of one random test stock.
curl -s -X POST -H 'content-type: application/json' -d "{\"address\":\"$ME\"}" "$AEVA_FAUCET/claim" | jq '{tx_hash, equity}'{
"tx_hash": "<64 hex characters>",
"equity": {
"symbol": "tAAPL",
"asset_id": "84f50ea918e0c15c9321362330d513593fd4536b807e1b40a39682dab3e21b55",
"shares": 10
}
}The faucet gives one claim per address and per network every 24 hours; see Faucet for the limits.
2. What you hold
A share is a bundle: one unit of each of the asset’s kinds, ECON
(economic), INCOME and VOTE, moving together. Amounts have six decimals, so
10 shares are 10000000 units of each kind.
ASSET=$(curl -s "$AEVA_INDEXER/v1/accounts/$ME" | jq -r '.assets[0].asset_id')
curl -s "$AEVA_INDEXER/v1/accounts/$ME" | jq -r '.assets[0].positions[] | "kind \(.kind_id) \(.class): \(.units) units"'
echo "on the explorer: $AEVA_EXPLORER/address/$ME"kind 0 RIGHT_CLASS_ECONOMIC: 10000000 units
kind 1 RIGHT_CLASS_INCOME: 10000000 units
kind 2 RIGHT_CLASS_VOTE: 10000000 units
on the explorer: https://explorer.aevachain.com/address/aeva1…3. The hourly dividend
Every distribution is an x/payout deposit against the INCOME kind; the
indexer lists them newest first.
curl -s "$AEVA_INDEXER/v1/assets/$ASSET/distributions?limit=3" | jq -r '.distributions[] | "\(.block_time) \(.amount) aeusd base units to kind \(.kind_id), supply \(.supply)"'2026-09-23T15:10:34.…Z 100000000 aeusd base units to kind 1, supply 100000000000
2026-09-23T14:10:47.…Z 100000000 aeusd base units to kind 1, supply 100000000000
…100 aeUSD over 100 000 shares is 0.001 aeUSD a share an hour, so 10 shares accrue 0.01 aeUSD every hour. Nothing is pushed to you: the chain keeps an index per kind, and your claimable amount is your units times the index growth since you last claimed.
4. Claim it
After the next distribution (they run once an hour), your claimable income
is non-zero. claim-all moves every asset’s income to your balance in one
transaction.
aevad query payout claimable "$ME" --node "$AEVA_NODE" -o json | jq -r '(.claimable // [])[] | "\(.asset_id[0:8])… kind \(.kind_id): \(.total) \(.denom) base units claimable"'
R=$(alias_tx payout claim-all --from me); T=$(wait_tx "$(jq -r .txhash <<<"$R")")
jq -r '.events[] | select(.type == "aeva.payout.v1.EventClaimed") | [.attributes[] | {(.key): (.value | fromjson? // .)}] | add | "claimed: \(.amount) \(.denom) base units of \(.asset_id[0:8])…"' <<<"$T"84f50ea9… kind 1: 10000 aeusd base units claimable
claimed: 10000 aeusd base units of 84f50ea9…10000 base units are 0.01 aeUSD, one hour of 10 shares.
What next
- Sell the INCOME kind alone, a dividend strip, to the trade desk, and keep the ECON and VOTE kinds.
- Borrow against your stock: while pledged, the dividends go to the lender.
- Concepts: Income, Bundles and strips.