RugWard Pay
Der Base-Gebührensplitter (0,5 %)
Wie ETH- und USDC-Zahlungen auf Base on-chain in der eigenen Transaktion des Käufers zwischen dir (99,5 %) und RugWard (0,5 %) aufgeteilt werden, und wie du den Vertrag selbst prüfst.
Auf dieser Seite
Was er ist#
Auf Base laufen ETH- und USDC-Zahlungen über einen kleinen, unveränderlichen Vertrag: den RugWard Pay Splitter. In der einzigen Transaktion des Käufers sendet er 99,5 % an deine Adresse und 0,5 % an die RugWard-Gebührenwallet. Das Geld fließt direkt vom Käufer zu dir; der Vertrag hält nie ein Guthaben.
| Netzwerk | Base (chain id 8453) |
| Splitter | 0x476EB0fECACA54d1311DB81bD3523cB0Dc66Dfab |
| Gebührenwallet | 0xd3651425E1942f6b81dE2602093BbaEac466c666 |
| Gebühr | FEE_BPS = 50 (0,5 %), abgerundet |
| Hash des Laufzeitcodes | 0xfbeadea59a5f03449a5e59bf11709160e03040568062bb2f0ba8fa779b8fd64d |
| Darüber geleitete Assets | nur ETH-8453 und USDC-8453 |
Nur Base nutzt einen Splitter. In allen anderen Netzwerken (Bitcoin, Monero, Solana, Ethereum, Arbitrum, BNB Chain, Polygon) gehen Zahlungen direkt an deine Adresse, ohne On-Chain-Aufteilung und ohne RugWard-Gebühr (Einführungsangebot). USDT wird auf Base nicht angeboten.
Warum ein Splitter#
Die Gebühr wird transparent, on-chain und im Moment der Zahlung erhoben, ohne dass RugWard jemals dein Geld hält. Du und dein Käufer seht beide Überweisungen auf BaseScan, und niemand kann den Prozentsatz ändern: Er ist eine Konstante in unveränderlichem Code.
Der Vertrag#
uint256 public constant FEE_BPS = 50; // 0.5 %
address public immutable feeWallet; // 0xd3651425E1942f6b81dE2602093BbaEac466c666
event Paid(bytes32 indexed ref, address indexed merchant, address indexed token,
address payer, uint256 amount, uint256 fee); // token = 0x0 for ETH
function feeOf(uint256 amount) public pure returns (uint256); // amount * 50 / 10000, rounded down
function payNative(address merchant, bytes32 ref) external payable;
function payToken(IERC20 token, address merchant, uint256 amount, bytes32 ref) external;payNative: Der Käufer sendet ETH; der Vertrag leitet im selben Aufrufvalue − feean dich undfeean die Gebührenwallet weiter.payToken: Nachdem der Käufer den Splitter für genau den Betrag freigegeben hat, bewegt er mittransferFromamount − feevom Käufer zu dir undfeezur Gebührenwallet. Tokens liegen nie im Vertrag.Paidwird mit dem zufälligen 32-Byte-refdes Angebots ausgelöst; über dieses Ereignis ordnet RugWard die Zahlung der Rechnung zu.- Es gibt keinen Eigentümer, keine Admin-Funktion, keine Pause, kein Upgrade und keine Möglichkeit, etwas abzuheben: Die fünf öffentlichen Funktionen oben sind der gesamte Vertrag. Zahlungen an die Nulladresse oder an den Splitter selbst werden zurückgesetzt (revert).
Was der Checkout macht#

- Das Angebot enthält einen neuen zufälligen
ref, deine Adresse und die Splitter-Adresse. - Bevor etwas signiert wird, liest der Browser des Käufers den Code des Splitters von Base und vergleicht seinen Hash mit dem geprüften Build. Bei Abweichung bricht er ab.
- ETH: eine Transaktion,
payNative(merchant, ref). USDC: Die Wallet fragt zweimal: genau den Betrag für den Splitter freigeben, dannpayToken(USDC, merchant, amount, ref). - RugWard schreibt die Zahlung nur gut, wenn ein
Paid-Ereignis vom registrierten Splitter stammt (Code-Hash on-chain erneut geprüft, 10 Minuten zwischengespeichert), denrefdieses Angebots, deine Adresse und den richtigen Token trägt und seine Gebühr genaufeeOf(amount)entspricht. Gutgeschrieben wird, was bei dir angekommen ist. - Nach 30 Blockbestätigungen ist die Rechnung paid.
Wichtige Folgen:
- Eine einfache Überweisung von ETH oder USDC an deine Adresse für ein Base-Angebot wird nicht automatisch erkannt. Macht ein Käufer das versehentlich, ist das Geld in deiner Wallet; kläre es manuell (siehe Nicht zugeordnete Zahlungen).
- Die Rechnung ist bezahlt, wenn 99,5 % des angebotenen Betrags bei dir ankommen (der Käufer zahlt 100 %).
- Ist deine Empfangsadresse eine Smart-Contract-Wallet, muss sie einfache ETH-Überweisungen annehmen (ein normaler Safe oder Smart Account tut das).
- Gibt ein Käufer USDC frei und bricht die Zahlung dann ab, bleibt eine Freigabe über genau diesen Betrag am Splitter. Sie ist harmlos (nur der Käufer kann sie über
payTokenausgeben, und nur, um einen Händler zu bezahlen), und der Käufer kann sie mit Approvals entfernen.
Selbst prüfen#
Jeder kann die Bereitstellung mit öffentlichen Werkzeugen prüfen, zum Beispiel mit cast aus Foundry:
RPC=https://mainnet.base.org
SPLITTER=0x476EB0fECACA54d1311DB81bD3523cB0Dc66Dfab
cast keccak $(cast code $SPLITTER --rpc-url $RPC)
# expected: 0xfbeadea59a5f03449a5e59bf11709160e03040568062bb2f0ba8fa779b8fd64d
cast call $SPLITTER "feeWallet()(address)" --rpc-url $RPC
# 0xd3651425E1942f6b81dE2602093BbaEac466c666
cast call $SPLITTER "FEE_BPS()(uint256)" --rpc-url $RPC
# 50
cast call $SPLITTER "feeOf(uint256)(uint256)" 25000000 --rpc-url $RPC
# 125000 (0.125 USDC of a 25 USDC payment)Oder öffne die Adresse auf BaseScan und sieh dir die Paid-Ereignisse und internen Überweisungen an.
Auf Sepolia testen#
Derselbe Vertrags-Build ist auf Ethereum Sepolia unter 0xbcb045fba82ce46ac073ac609cb227d20c450ce5 mit derselben Aufteilung 99,5 % / 0,5 % bereitgestellt. Testrechnungen im Dashboard nutzen ihn mit kostenlosem Test-ETH und Test-USDC, sodass du den genauen Ablauf siehst, bevor du echtes Geld annimmst.
Stand der Prüfung#
Der Splitter wurde intern von RugWard geprüft und ist durch unsere eigenen Foundry-Tests (Unit- und Fuzz-Tests) abgedeckt. Er wurde nicht von einer unabhängigen Firma geprüft. Quellcode und Verhalten sind klein genug, um sie in wenigen Minuten zu lesen; die Schnittstelle oben ist vollständig.
Zuletzt aktualisiert: 30. Oktober 2026