Skip to main content
This page is optional developer tooling, not the primary integration guide. Read Embedded Wallets first for concepts and per-step detail. Run the interactive tester, then copy the minimal server-side script below it.
Embedded wallets run on Stellar today. Quoting and ordering follow the standard procedure, so this page links out to Onramps and Offramps rather than re-teaching them. The minimal script below is the fastest server-side path; the main guide covers concepts and signing detail.

Sandbox tester

Sandbox keys only. Pasting an API key here sends authenticated requests from your browser to the Etherfuse API, the same pattern as the Swaps tutorial and the API Reference “Try it” playground. Use a sandbox API key only. Production integrations must call these endpoints server-side; never embed a production API key in client-side code.
The tester stores your sandbox API key in session storage for the current browser tab only. It covers the embedded-specific sequence (provision → quote → order → approval signing). For quote and order mechanics shared with any wallet, see the standard ramp guides linked above.
Paste your sandbox API key below and the tester generates an owner keypair in the browser, provisions a wallet, quotes, orders, simulates the fiat deposit, watches for the approval, signs it with the generated owner key, and broadcasts. Every request and response is shown inline so you can check your own payloads.

Minimal sandbox onramp

Copy-paste server-side script for a complete embedded-wallet onramp in sandbox: provision with PEM, quote with walletAddress, order with cryptoWalletId, simulate fiat, poll for the approval, sign, and broadcast. Set ETHERFUSE_API_KEY, BANK_ACCOUNT_ID, and TARGET_ASSET (a Stellar asset identifier from GET /ramp/assets).
Each commented api() call links to the API reference:
Offramps follow the same approval loop; there is no fiat_received step and the approval appears once Etherfuse builds the burn transaction. See Offramps.

Worked example (test fixture)

The values below are a documentation fixture only; do not use this private key in production. They show the same approvalMessage signed once, yielding two common hex encodings Etherfuse accepts. Bytes to sign (approvalMessage, copy verbatim, including quotes and escaping):
Owner private key (PKCS#8 PEM):
Normalized signerPublicKey (compressed SEC1 hex; what Etherfuse stores after provision, regardless of whether you sent hex, PEM, or JWK):
Corresponding public key PEM (valid as signerPublicKeyPem at provision, or for offline verification):
Signatures over that message (submit either one; same underlying r and s, two hex layouts): Both verify the same ECDSA P-256 / SHA-256 signature. Etherfuse normalizes either layout before broadcast. ECDSA is randomized, so signing again yields different hex, but any valid signature over the same message is accepted.
To verify the DER-wrapped fixture offline, paste the message, PEM public key, and DER signature into EncodeAll ECDSA Verify with curve P-256 and algorithm SHA256withECDSA. The result should be Valid. Most online verifiers expect DER, not the 128-character raw layout.
Submit with server-side hex (DER-wrapped, typical Node/Java signer):
Submit with browser hex (raw r‖s, typical WebCrypto signer):
In production, approvalMessage and approvalMessageId come from a fresh GET /ramp/order/ read; the fixture above uses a static message for illustration only.

Embedded Wallets

Stellar

Onramps

Offramps