Resolve metadata
Load the relevant Assetiko TOML file and verify issuer accounts, currency code, product page and documentation links.
XRPL integration guide
Assetiko assets are issued on the XRP Ledger and organized around verified issuer metadata, product documentation, public TOML files and USDV prime market pairs.
const pair = {
base: "ASPX",
quote: "USDV",
chain: "XRPL"
}
// Primary route:
// USDV -> Assetiko asset
// Optional route:
// RLUSD or USDC -> USDV -> Assetiko asset
Load the relevant Assetiko TOML file and verify issuer accounts, currency code, product page and documentation links.
Ask the user to create required XRPL trust lines for USDV and the selected Assetiko asset before presenting execution.
Prefer the prime USDV pair. If the user starts with RLUSD or USDC, use explicit pathfinding through USDV.
Use slippage limits, destination minimums, issuer validation and product disclaimers before submitting XRPL transactions.
Assetiko assets are tokenized products with issuer accounts, public metadata and product-specific documentation. A platform integrating Assetiko assets should treat the token, issuer account, product page, TOML file, supported pair and risk disclosure as one information set.
Assetiko uses USDV as the prime pairing asset for its XRPL product markets. USDV is a permissioned asset. Integrators should expect trust-line authorization, compliance controls, issuer-side rules and possible transfer restrictions to affect routing and execution.
Display Assetiko product markets as Assetiko asset / USDV wherever possible. Use non-USDV assets only as entry currencies routed into USDV through explicit pathfinding.
export const USDV = {
currency: "USDV",
issuer: "rfffsukWALJB1PXYk7H8xkR6UJUDT8nMJE",
role: "prime_quote_asset",
permissioned: true
};
Applications can support users who hold RLUSD or USDC by explicitly routing through USDV into Assetiko assets, where liquidity exists and the user satisfies the required trust-line and compliance conditions.
import xrpl from "xrpl";
const client = new xrpl.Client("wss://xrplcluster.com");
await client.connect();
const user = "rUSER_RECEIVING_ACCOUNT";
const RLUSD = {
currency: "RLUSD",
issuer: "VERIFY_OFFICIAL_RLUSD_ISSUER"
};
const USDV = {
currency: "USDV",
issuer: "rfffsukWALJB1PXYk7H8xkR6UJUDT8nMJE"
};
const ASPX = {
currency: "ASPX",
issuer: "rE63VEywx9eX2mWgfLWNRBf7JDdKtTS27R"
};
const quote = await client.request({
command: "ripple_path_find",
source_account: user,
destination_account: user,
destination_amount: {
currency: ASPX.currency,
issuer: ASPX.issuer,
value: "1"
},
send_max: {
currency: RLUSD.currency,
issuer: RLUSD.issuer,
value: "100"
}
});
const route = quote.result.alternatives?.[0];
if (!route) throw new Error("No executable path found");
const payment = {
TransactionType: "Payment",
Account: user,
Destination: user,
Amount: {
currency: ASPX.currency,
issuer: ASPX.issuer,
value: "1"
},
SendMax: route.source_amount,
Paths: route.paths_computed
};
// Submit with the user's wallet after showing route, issuer and slippage.
Production integrations should test whether their wallet flow supports path-based same-account delivery. Where it does not, use the platform's supported XRPL DEX execution pattern, still preserving the explicit route and issuer checks.
XRPL issued assets require trust lines. Permissioned assets may also require issuer authorization. Your interface should detect missing trust lines, frozen trust lines, authorization failures and insufficient limits before opening a swap or exposure flow.
const trustSet = {
TransactionType: "TrustSet",
Account: user,
LimitAmount: {
currency: "ASPX",
issuer: "rE63VEywx9eX2mWgfLWNRBf7JDdKtTS27R",
value: "1000000"
}
};
| Asset | Type | Issuer | Prime pair | Docs |
|---|---|---|---|---|
| ASPX | Index tracker | rE63VEywx9eX2mWgfLWNRBf7JDdKtTS27R | ASPX / USDV | Open |
| ANDX | Index tracker | rsAqnjvsTUxvQQw9f5ehoYkQJwsfEiqXwc | ANDX / USDV | Open |
| ASEM | Index tracker | rG8nNXFhBHKu3PUReMrkPtQMYSb9iWWDc7 | ASEM / USDV | Open |
| ADEF | Index tracker | raLiXSY1AsAqD4tz3SNEY1iTn81ULUrPqo | ADEF / USDV | Open |
| AENG | Index tracker | r368W5E4Bc8FKvq6hNCGU5dTJ2mkoMMCaw | AENG / USDV | Open |
| AEMX | Index tracker | rsE5j8AzAMi2Z7dPsi9NM7dTqBBamvXYnP | AEMX / USDV | Open |
| XAUa | Tokenized gold | rJanYBNcgXZFRqTNcaY5AoPdSEgveJofGw | XAUa / USDV | Open |
| NEXF | Private market asset | rLP4u2mkmqbSUhjnDJvDqawMdccdC4pp7x | NEXF / USDV | Open |
Each product subdomain may publish an XRPL TOML file containing accounts, currency metadata, issuer metadata, token metadata and links. Applications should cache TOML responses, but refresh them regularly and treat issuer mismatch as a blocking condition.
const tomlUrls = {
ASPX: "https://aspx.assetiko.com/.well-known/xrp-ledger.toml",
ANDX: "https://andx.assetiko.com/.well-known/xrp-ledger.toml",
ASEM: "https://asem.assetiko.com/.well-known/xrp-ledger.toml",
ADEF: "https://adef.assetiko.com/.well-known/xrp-ledger.toml",
AENG: "https://aeng.assetiko.com/.well-known/xrp-ledger.toml",
AEMX: "https://aemx.assetiko.com/.well-known/xrp-ledger.toml",
XAUa: "https://gold.assetiko.com/.well-known/xrp-ledger.toml",
NEXF: "https://nexf.assetiko.com/.well-known/xrp-ledger.toml"
};
Assetiko product pages may display pool-implied prices. Developer platforms should show the price implied by the selected route, the prime USDV pair, liquidity depth, slippage, issuer, destination amount and fees. Do not present RLUSD or USDC entry quotes as official Assetiko prices unless the route explicitly passes through USDV.