EIP-681 : Transaction/Payment Request
Last updated
Last updated
EIP681 is a URI standard for requesting an Ethereum-based coin/token transaction. D’CENT App supports EIP681 using dynamic links. (Reference: EIP 681 standard document)
The eip681 dynamic link is configured in the following format.
https://link.dcentwallet.com/MyWallet/eip681/{eip681_request}
eip681_request is configured in the following standard format.
request = schema_prefix
target_address
[ "@" chain_id
] [ "/" funtion_name
] [ "?" parameters
]
schema_prefix
It is expressed as ‘ethereum:’ or ‘pay-’ and can be omitted in case of coin transfer. * (Only ethereum (evm) series supported by D’CENT App are supported. (Reference: D’CENT Wallet Supported Coin List - Supported Cryptocurrency List (dcentwallet.com))
target_address
The beneficiary address (to address) where the transfer will be made to.
chain_id
The value of the chain id. (Reference: chainlist site) If the chain id value is not specified, the chain id value will be set to 1 (ethereum).
funtion_name
*
If target_address is a contract address, function_name can be configured. (Reference: function_name list)
parameters
It is composed in the form of “key”=”value”, and the information is different depending on the function_name. If there is no function_name, the amount to be transferred must be entered in the form of ‘value= amount to be sent (wai unit)’.
(* It can exist only when target_address
is a contract address.)
Example) When sending 5FAU from Ropsten testnet (chain id:3) the FAU token (contract address: 0xFab46E002BbF0b4509813474841E0716E6730136) to an address 0xA93433E9A645e4C9d9557c2E38939Aa79e18107
The function_name currently supported by the D’CENT App is as follows.
We plan to expand the supported function_name list in the future.
transfer
Executes transfer(address,uint256), a function for erc20 token transfer
ie) transfer?address=0xA93433E9A645e4C9d9557c2E38939Aa79e18107c&uint256=1e-2
transferfrom
Executes transferfrom(address,address,unit256), a function for erc20 token transfer
ie) transferfrom?address=0xA93433E9A645e4C9d9557c2E38939Aa79e18107c&address=0x19f64674d8a5b4e652319f5e239efd3bc969a1fe&uint256=1e-2
approve
Executes approve(address,uint256), a function for requesting erc20 permission
ie) approve?address=0xA93433E9A645e4C9d9557c2E38939Aa79e18107c&uint256=1e-2
The following is an example of dynamic link according to transaction type. (D’CENT App execution flow that performs each transaction varies depending on the presence or absence of a network account.)
[Coin Transfer]
Transfer polygon 0.5MATIC to the address 0xA93433E9A645e4C9d9557c2E38939Aa79e18107c
D’CENT App process
When polygon account exists,
When polygon account does not exist,
When two or more polygon accounts exist,
[Token transfer]
Transfer QUIK(polygon) 0.005QUICK to the address 0xA93433E9A645e4C9d9557c2E38939Aa79e18107c
D’CENT App process
When polygon account exists,
When polygon account does not exist,
When two or more polygon accounts exist,
[Token transferfrom] Transfer QUIK(polygon) 0.005QUICK to the address 0xA93433E9A645e4C9d9557c2E38939Aa79e18107c to another address 0x0xA93433E9A645e4C9d9557c2E38939Aa79e18107c
D’CENT App process
When polygon account exists,
When polygon account does not exist,
When two or more polygon accounts exist,
[Token approve] Approving permission to 0xA93433E9A645e4C9d9557c2E38939Aa79e18107c in the amount of QUIK(polygon) 0.5QUICK
D’CENT App process
When polygon account exists,
When polygon account does not exist,
When two or more polygon accounts exist,