/v1/testnet/fixtures
What the simulation keeps alive on Testnet: live accounts, its tokens (tokens[]: name, currency, issuer, holders, amm, role — stablecoin | deep (the high-liquidity pool) | volatile (a thin pool, swung every round) | crowd — with a note saying what each does, and peg_usd on the stablecoin), its collections (collections[]: name, issuer, taxon, role blue-chip | drop, note, items), an NFT with offers, one of every ledger object, and a real transaction of each type (catalogue[]: id, kind, about, result, hash, and tx — the JSON it sent, without fee, sequence, expiry or signature, a working template for that variation) — start here
Request
https://api.xrpl.to/v1/testnet/fixturescurl 'https://api.xrpl.to/v1/testnet/fixtures'
Response
https://api.xrpl.to/v1/testnet/fixtures{ "success": true, "network_id": 1, "generated_at": "2026-11-01T06:57:07Z", "age_seconds": 457, "population": 92, "last_activity": [ "stablecoin: the pool was +0.29% off the dollar, so the issuer sold 37.5108 into it (tesSUCCESS)", "whale trader:1 stayed out", "maker trader:2 quoted 3.9% wide (tecINSUF_RESERVE_OFFER/tecINSUF_RESERVE_OFFER)", "maker trader:3 quoted 2.0% wide (tesSUCCESS/tesSUCCESS), pulled 2", "retail trader:18 opened a line in AUTH and bought in (tecUNFUNDED_OFFER)" ], "accounts": { "issuer": "rKmPxq4hD4m27cVy7kqRmwnV59rXVwWML7", "holders": [ "rs3MqAj6tzvz1cR4Cg3FvFw4xWxdsFXpGg", "r453rpyijXZ3S8qpXb1G1bRZq8TRAiFaaW", "rsmsd5CCDiUP1VUB95VXyGRRzWbjhNYc4i", "ra35utaLFA5JBxTCschftWJcCwBU7Mn992", "rfuXBWa3RGrUfr67zko5DZ5viC6vspuvW6" ], "trader": "rU3KNagYRmKXMrcPXrV6eWR4WKRPKcN6QX", "population": 92, "busy": [ "rKmPxq4hD4m27cVy7kqRmwnV59rXVwWML7", "rU3KNagYRmKXMrcPXrV6eWR4WKRPKcN6QX", "rKn1mjvRh9S4vwuKs6kCJCVb2jGQAaUyeq", "r3u36vfykfku78K2VbfDxkrYhdzGKwyvve", "r9MMwhq5oTS5Fi8F9cMtJKm6weVDhfZK9r" ] }, "tokens": [ { "name": "Testnet RLUSD", "currency": "524C555344000000000000000000000000000000", "issuer": "rKmPxq4hD4m27cVy7kqRmwnV59rXVwWML7", "holders": 25, "amm": "rHh8QTC8Jr8dEwzUWTQxdFF3ZBhKGp1gAk", "book": true, "peg_usd": 1, "role": "stablecoin", "note": "Pegged to one dollar in XRP; its issuer stands in the market with a ladder either side of the peg and defends the pool. Also pooled against the deep and the volatile token, with no XRP in those pools." }, { "name": "Testnet Deep Pool", "currency": "4445455000000000000000000000000000000000", "issuer": "rhuZ8V91S6vMD7cegHuKTJ8xxPbKmF6LmW", "holders": 16, "amm": "rBYSka7yNzSpV9PyQ4Jd8FtoFTi3JCAwrm", "book": true, "role": "deep", "note": "The high-liquidity pool: kept at thousands of XRP by the funder, a third of the bots trade it, and it gains holders every hour — the token every example points at." }, { "name": "Testnet Volatile Pool", "currency": "564F4C5400000000000000000000000000000000", "issuer": "rnz7aAbDDoAVCk1YoQ1HLYC4U9xz3TNTMj", "holders": 47, "amm": "rUYTeeJoVC433MkSXiQVKEwZkEX7oRnm9F", "book": true, "role": "volatile", "note": "A thin pool that a whipsaw account swings by a tenth to a quarter every round, so its price moves the way a small token's does." }, { "name": "Testnet Transfer Fee", "currency": "4645450000000000000000000000000000000000", "issuer": "rmFYQymybCk6gFFeeSpxHx32WyP5cyZ7K", "holders": 8, "amm": "rQaYEDp3NPDYz6aFTDfENcoBt6TTWakZ4o", "book": true, "role": "fee", "note": "A 2% transfer fee (TransferRate 1020000000): a payment between holders delivers less than it sends, and SendMax matters." }, { "name": "Testnet Auth Only", "currency": "4155544800000000000000000000000000000000", "issuer": "raGqdtviXQeGTzdZ6nDuZu2scEV7AHBZfy", "holders": 25, "amm": null, "book": true, "role": "auth", "note": "RequireAuth: a trust line to it is worthless until the issuer authorises it, and a payment to an unauthorised line is tecPATH_DRY. No pool." } ], "collections": [ { "name": "Testnet Blue Chips", "issuer": "rJmUnrau3q8a6BUMvLwprgNRoRv6a1Ch7y", "taxon": 2339, "role": "blue-chip", "note": "The collection people trade: it grows a few pieces a run to fifty, and its pieces are listed, bid on and sold every round.", "items": 52 }, { "name": "Testnet Drop 1", "issuer": "rGXsZn6k58MiaYXQCZ7AF34NwSvXhk8kC9", "taxon": 521, "role": "drop", "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.", "items": 4 }, { "name": "Testnet Drop 2", "issuer": "rP2BugkPZxnezTP6dxSkj5Crw2NsvzAwDv", "taxon": 5583, "role": "drop", "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.", "items": 4 }, { "name": "Testnet Drop 3", "issuer": "rUmxNekwdd9HiSMiyVLbGYVqutfAMbrNR6", "taxon": 6694, "role": "drop", "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.", "items": 2 }, { "name": "Testnet Drop 4", "issuer": "r4NZxFVi69xqvT1dS3jdCjF99bcaceYHSf", "taxon": 2283, "role": "drop", "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.", "items": 4 } ], "nft": { "id": "00080000C2D5AE3A2E7AF5072D1FB422228915A85CBDAF85043D7341014EF9C7", "issuer": "rJmUnrau3q8a6BUMvLwprgNRoRv6a1Ch7y", "owner": "r4LXJ9LYbY3xHquERhbHDPN87Z3E4dU2e2", "taxon": 2339, "sell_offer": "C5E22AB1679A610D90CD98ACC7E8F47572A147AB5FBF836946AFFC52E3645A80", "buy_offer": "13F3DA1EA3DBA4CD1B23A04F540C2AB36C9D258BED031B636C90C821C3D7FF5C" }, "objects": { "check": { "id": "B8D67F3E8C1968AC460E03A0EAD48F7373131BCF268353C3A2AF131B9D572AE6" }, "credential": { "subject": "rLq8tAjjmmxpT3RhE9HkFb4UvzPF1di2sR", "issuer": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "credential_type": "4B5943" }, "deposit_preauth": { "owner": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "authorized": "rLq8tAjjmmxpT3RhE9HkFb4UvzPF1di2sR" }, "did": { "account": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2" }, "escrow": { "owner": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "seq": 21953212 }, "mpt_issuance": { "id": "014EFAC60EE40CC9293ED83586466BCF859715D3279739C3", "holder": "rLq8tAjjmmxpT3RhE9HkFb4UvzPF1di2sR" }, "nft_offer": { "id": "E4C3857CF9244790EEBC3AB776122B5CBA0DFE3A023F7613D4883070B656676A" }, "nft_page": { "id": "0EE40CC9293ED83586466BCF859715D3279739C3FFFFFFFFFFFFFFFFFFFFFFFF" }, "offer": { "account": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "seq": 21953227 }, "oracle": { "account": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "oracle_document_id": 1 }, "payment_channel": { "id": "9403149027A03C6E810515FA31CB93BFDE48D66AD296C18BB29AB793796D488E" }, "permissioned_domain": { "account": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "seq": 21953218 }, "signer_list": { "id": "72721BDDBEB39A798F1466B01FC759ED1ADF763BB8B18468C64F046657F67661" }, "ticket": { "account": "rpMje1CddozBuahhXUFLGxEkoQH6isUhy2", "ticket_seq": 21953214 }, "transaction": { "hash": "F0057005D32CDF4E9CB79609C7CCAA87F41D59AA0C6FADCD55FFE33179980017", "ledger_index": 21980810 } }, "catalogue": [ { "id": "account.delete", "kind": "AccountDelete", "about": "deleting an account and sending what is left to another", "result": "no funder: FAUCET_WALLET_SEED is not set (the public faucet is never used)", "at": "2026-11-01T03:18:42.411921270+00:00" }, { "id": "accountset.defaultripple", "kind": "AccountSet", "about": "asfDefaultRipple: an issuer letting its token move between holders", "result": "tesSUCCESS", "at": "2026-11-01T04:19:31.699364730+00:00", "hash": "6106168154BDAA0C65E99CA3B2D1BF3D011ADB61531EADB233226C77968966B7", "tx": { "TransactionType": "AccountSet", "Account": "rpNGrXzA4pi3Vh3ErXBASbiWFWwoaLL88h", "SetFlag": 8 } }, { "id": "accountset.depositauth", "kind": "AccountSet", "about": "asfDepositAuth: nothing arrives unless this account allowed it", "result": "no funder: FAUCET_WALLET_SEED is not set (the public faucet is never used)", "at": "2026-11-01T03:18:42.412091579+00:00" }, { "id": "accountset.disallowxrp", "kind": "AccountSet", "about": "asfDisallowXRP: the advisory flag that says do not send XRP here", "result": "no funder: FAUCET_WALLET_SEED is not set (the public faucet is never used)", "at": "2026-11-01T03:18:42.411925167+00:00" }, { "id": "accountset.domain", "kind": "AccountSet", "about": "setting the Domain field, which is how an account claims a website", "result": "tesSUCCESS", "at": "2026-11-01T04:19:24.809586832+00:00", "hash": "5C1FFE78846322D30045BB5FDC4A08D8BB590358705A230E3C72BCBCEE015A12", "tx": { "TransactionType": "AccountSet", "Account": "rp5xSm78RgLUnLj8NFs4jw8DtANMPC84cV", "Domain": "7472616465722d32362e6578616d706c65" } } ] }
Long arrays and strings are shortened in the example; Send request for the full answer.
{ network_id, generated_at, age_seconds, population, accounts: { issuer, holders[], trader, busy[] }, tokens[], nft, objects, catalogue[] }
What it does
What the simulation keeps alive on Testnet: live accounts, its tokens (tokens[]: name, currency, issuer, holders, amm, role — stablecoin | deep (the high-liquidity pool) | volatile (a thin pool, swung every round) | crowd — with a note saying what each does, and peg_usd on the stablecoin), its collections (collections[]: name, issuer, taxon, role blue-chip | drop, note, items), an NFT with offers, one of every ledger object, and a real transaction of each type (catalogue[]: id, kind, about, result, hash, and tx — the JSON it sent, without fee, sequence, expiry or signature, a working template for that variation) — start here
- Notes
- Rebuilt every few minutes by the simulation; age_seconds past a few minutes means Testnet was reset and it is catching up.