Ce que définit EIP-681
EIP-681 est une proposition d’amélioration d’Ethereum (Ethereum Improvement Proposal), publiée dans le dépôt des EIP, qui décrit un format d’URI pour demander à quelqu’un d’envoyer de l’ether ou d’appeler une fonction de contrat. L’URI commence par ethereum:, puis l’adresse cible, un @ et un identifiant de chaîne facultatifs, un nom de fonction facultatif et des paramètres de requête. Un portefeuille qui scanne un tel code peut construire la transaction pour que l’utilisateur la vérifie.
Une simple demande d’ether ressemble à ethereum:0x...@1?value=1e18. La valeur est donnée en wei, la plus petite unité de l’ether, et la notation scientifique est permise : 1e18 signifie donc un ether. L’identifiant de chaîne indique au portefeuille quel réseau est visé, par exemple 1 pour le réseau principal d’Ethereum.
Transferts de jetons
EIP-681 peut aussi décrire un appel à un contrat de jeton. Pour un transfert de jeton, l’adresse cible est le contrat du jeton, la fonction est transfer, et les paramètres donnent le destinataire et le montant, comme dans ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=1e6. Le montant est exprimé dans la plus petite unité du jeton, qui dépend de ses décimales.
La prise en charge du format complet varie selon les portefeuilles. Certains ne lisent que l’adresse, et certains ignorent l’identifiant de chaîne ou l’appel de fonction : il vaut donc la peine de tester un code avec les portefeuilles que vos payeurs utilisent. Le payeur doit toujours vérifier le réseau, le jeton et le destinataire avant de confirmer.