For the complete documentation index, see llms.txt. This page is also available as Markdown.

Token-Interoperabilität

Rome EVM überbrückt ERC-20-Token und SPL-Token über ein Single-State-Modell. Diese Seite erklärt, wie Token über EVM und Solana funktionieren.

Das Single-State-Modell

Im Gegensatz zu herkömmlichen Bridges sperrt Rome keine Token auf einer Chain und mintet keine eingewickelten Kopien auf einer anderen. Stattdessen sind ERC-20-Token auf Rome EVM transparente Wrapper über den zugrunde liegenden SPL-Token-Konten auf Solana.

┌──────────────────────────────────┐
│ Rome EVM                         │
│                                  │
│   ERC-20 "rUSDC"                 │
│   ┌────────────────────────┐     │
│   │ balanceOf(user)        │─────┼──► liest direkt aus der SPL-ATA
│   │ transfer(to, amount)   │─────┼──► führt SPL-Transfer über Precompile aus
│   │ totalSupply()          │─────┼──► liest das SPL-Mint-Angebot
│   └────────────────────────┘     │
│                                  │
└──────────────────────────────────┘

                 │ dieselben zugrunde liegenden Daten

┌──────────────────────────────────┐
│ Solana                           │
│                                  │
│   SPL-Token-Konto (ATA)         │
│   Eigentümer: PDA des Nutzers    │
│   Mint: USDC (Circle nativ)     │
│   Betrag: 1000000 (= 1 USDC)    │
│                                  │
└──────────────────────────────────┘

Das bedeutet:

  • Keine Bridge-Verzögerung — das ERC-20-Guthaben IST das SPL-Guthaben

  • Keine Liquiditätsfragmentierung — DeFi auf beiden Seiten sieht dieselben Token

  • Kein Bridge-Risiko — es gibt kein separates Escrow, das ausgenutzt werden könnte

ERC20SPL: Der Wrapper-Vertrag

SPL_ERC20 ist der standardmäßige Wrapper-Vertrag, der eine vollständige ERC-20-Schnittstelle über einem SPL-Token-Mint bereitstellt:

So funktioniert es unter der Haube:

  • balanceOf() → leitet die ATA des Nutzers (Associated Token Account) ab → liest das Guthaben aus Solana

  • transfer() → ruft das SPL-Token-Precompile auf (0xff...05) → bewegt Token auf Solana

  • approve() / allowance() → verwendet EVM-Speicher (standardmäßiges ERC-20-Muster), da SPL EVM-artige Allowances nicht nativ unterstützt

  • totalSupply() → liest aus dem SPL-Mint-Konto

ERC20SPLFactory

Der Factory-Vertrag stellt Wrapper für jeden SPL-Token bereit:

Factory-Adresse (Devnet): 0xfd21da046c282e1d36cc45e46d9599cff5742f2b

Token-Register

Die TokenRegistry ermöglicht die administrativ gesteuerte Registrierung genehmigter SPL-Token mit Cross-Chain-Metadaten:

Die Registry stellt sicher, dass jedes Asset auf einen einzigen kanonischen SPL-Mint abbildet — und verhindert so, dass mehrere USDC-Darstellungen die Liquidität fragmentieren.

Einzahlungs-/Auszahlungsablauf

SPL einzahlen → EVM

  1. Der Nutzer überträgt SPL-Token an den Bridge-Vault

  2. Die Bridge erstellt die ATA des Nutzers auf Rome EVM (falls sie nicht existiert)

  3. ERC-20-Wrapper wird aktiv — der Nutzer sieht das Guthaben in MetaMask

EVM auszahlen → SPL

  1. Der Nutzer ruft das Withdraw-Precompile auf (0x42...16) auf Rome EVM

  2. Das Precompile führt eine SPL-Überweisung von der PDA des Nutzers zurück zu seiner Solana-Wallet aus

  3. SPL-Token erscheinen in der Solana-Wallet des Nutzers

PDA-Ableitung

Jede EVM-Adresse wird einer Solana-PDA zugeordnet, die ihre Token-Konten besitzt:

Wichtige Muster

SPL-Guthaben aus Solidity lesen

Token über das SPL-Precompile übertragen

Gas-Token

Jede Rome-EVM-Chain hat ihren eigenen Gas-Token — beliebiger SPL-Token, der bei der Chain-Registrierung gewählt wird:

  • RSOL — Standard-Gas-Token (eingewickeltes SOL)

  • Benutzerdefinierte Token — beliebiger SPL-Token, bepreist über den Meteora-DAMM-V1-Pool

Gas-Token sind ERC-20-Darstellungen von SPL-Token. Transfer Hooks werden bei EVM-internen Gaszahlungen NICHT ausgelöst.

Einschränkungen

  • SPL-Token-Beträge sind uint64 — Maximalwert 18.446.744.073.709.551.615

  • Standard-Dezimalstellen für neue SPL-Mints: 9

  • ERC-20-Wrapper-Symbole müssen pro Factory weltweit eindeutig sein

  • Allowances verwenden EVM-Speicher (nicht Solana-Delegates)

Was kommt als Nächstes

Zuletzt aktualisiert

War das hilfreich?