Wyoming Motor Vehicle Bill of Sale


This Bill of Sale has been made on in the County of in the State of Wyoming between the following parties: (hereinafter referred to as the "Buyer") with a mailing address of Buyer XRP address: and, (hereinafter referred to as the "Seller") with a mailing address of Seller XRP address: .

The parties agree in exchange for possession and ownership of the following motor vehicle (the "Vehicle"):

Vehicle Type: Make: Model: Body Type: Year: Vehicle I.D. Number (VIN): Odometer:

The Purchase Price the Buyer hereby pays to the Seller for said Vehicle is: = XRP (the "Purchase Price"), wherein 1 XRP = $, including website agency fee $ = XRP Website XRP address: for total payment = $ = XRP, as further agreed via signing with their respective Xaman wallet XRP addresses:


Seller:

Signed with XRP Address:

Date:

Buyer:

Signed with XRP Address:

Date:


__________________________________________________________

Notary Statement

Before me, ____________________________________, a notary public in _____________________________________

County, State of __________________________, personally appeared _________________________________________

___________________________________________________ on (date) _______________________________________.

___________________________________________                 ____________________________________________

                Notary Public Signature                                                    Commission Expiration Date

document.getElementById('buyerPaymentButton').onclick = async () => { try { // Convert XRP amounts to drops (1 XRP = 1,000,000 drops) const purchaseAmountDrops = Math.round(parseFloat(purchaseAmountXRP) * 1_000_000); const agentAmountDrops = Math.round(parseFloat(purchaseAmountXRP) * 0.01 * 1_000_000); // 1% for agent console.log('purchaseAmountDrops: ', purchaseAmountDrops); console.log('agentAmountDrops: ', agentAmountDrops); // Get the sender's account (replace with dynamic retrieval if needed) const senderAddress = 'YOUR_SENDER_XRP_ADDRESS'; // Replace with the actual sender's address // Fetch the account's sequence number (you may need to query an XRPL node) const sequence = await fetchAccountSequence(senderAddress); // Implement this function // Define the two Payment transactions const buyerPaymentTransaction = { TransactionType: 'Payment', Account: senderAddress, Amount: String(purchaseAmountDrops), Destination: sellerXRPaddress, Sequence: sequence, Fee: '12' // Minimum fee in drops, adjust as needed }; const agentPaymentTransaction = { TransactionType: 'Payment', Account: senderAddress, Amount: String(agentAmountDrops), Destination: agentXRPaddress, Sequence: sequence + 1, // Increment sequence for the second transaction Fee: '12' // Minimum fee in drops, adjust as needed }; // Create the Batch transaction const { sdk } = await xumm.state(); const payload = await sdk.payload.create({ TransactionType: 'Batch', Transactions: [buyerPaymentTransaction, agentPaymentTransaction], Account: senderAddress }); if (payload.pushed) { alert(`Payload ${payload.uuid} pushed to your phone.`); } else { alert('Payload not pushed, opening payload...'); window.open(payload.next.always); } } catch (error) { console.error('Error creating batch transaction:', error); alert('Failed to create batch transaction: ' + error.message); } }; // Helper function to fetch account sequence (example) async function fetchAccountSequence(address) { const response = await fetch('https://s1.ripple.com:51234/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ method: 'account_info', params: [{ account: address, ledger_index: 'current' }] }) }); const data = await response.json(); if (data.result && data.result.account_data) { return data.result.account_data.Sequence; } throw new Error('Failed to fetch account sequence'); }