Rockside API

Identities

Manage identities on Rockside for a given network. Those identities are smartcontract, they do not require Ethers to send transactions, Rockside take care of the fees.

post
Create Identity

https://api.rockside.io/ethereum/:network/identities
The account will be available on the network on which it was created.
Request
Response
Request
Path Parameters
network
required
string
Available networks are "mainnet", "ropsten", "poanetwork".
Headers
apikey
required
string
Your API key is available on Rockside Dashboard.
Response
200: OK
{
"address": "0x25D2a895eE39fb236a65af8FA28701f3D41BA5de"
}

Example:

curl -X POST \
https://api.rockside.io/ethereum/ropsten/identities \
-H 'Content-Length: 0' \
-H 'apikey: YOUR_API_KEY'

Response:

{
"address": "0x297634F1433Ef10162E2986760b7D4880c3F0247"
"transaction_hash":"0xa51fdb4b79c45fbe9bf6df5a822814f6ad47bf9dfad4bb2b59745b2968c1d38e"
}

get
List Identities

https://api.rockside.io/ethereum/:network/identities
List all the accounts available on the selected network.
Request
Response
Request
Path Parameters
network
required
string
Available networks are "mainnet", "ropsten", "poanetwork"
Headers
apikey
required
string
Your API key is available on Rockside Dashboard.
Response
200: OK
[
"0x60d44d28c826cff5d05ee57526e20103cdac1c9a",
"0x642aa2e540bb7172c487d5e2c315ad81b27070af",
"0x55f42ec257a6ec1b77735f5c9428d954e36c62c2",
"0x72b63625000c08087d33445ef55baceb4be65d67"
]

Example:

curl -X GET \
https://api.rockside.io/ethereum/ropsten/identities \
-H 'apikey: YOUR_API_KEY'

Response:

[
"0x60d44d28c826cff5d05ee57526e20103cdac1c9a",
"0x642aa2e540bb7172c487d5e2c315ad81b27070af",
"0x55f42ec257a6ec1b77735f5c9428d954e36c62c2",
"0x72b63625000c08087d33445ef55baceb4be65d67"
]

post
Reset identity nonce

https://api.rockside.io/ethereum/:network/identities/:identity_address/nonce/reset
Use this service if the nonce of your identity managed by Rockside is out of sync with the nonce on the blockchain. It forces resynchronization.
Request
Response
Request
Path Parameters
identity_address
required
string
The public address of your identities.
network
required
string
Available networks are "mainnet", "ropsten", "poanetwork"
Headers
apikey
required
string
You API KEY is available on Rockside Dashboard
Response
200: OK

Transaction

Send transaction with an account you created on Rockside.

post
Send Transaction

https://api.rockside.io/ethereum/:network/transaction
Send transaction to the selected network.
Request
Response
Request
Path Parameters
network
required
string
Available networks are "mainnet", "ropsten", "poanetwork".
Headers
apikey
optional
string
Your API KEY is available on Rockside Dashboard.
Body Parameters
from
required
string
Address from the account you want to use to send a transaction.
to
optional
string
Destination of the transaction. Not needed in case of contract deployment.
value
optional
string
Amount of ether you want to send.
data
optional
string
The compiled code of a contract or a hash of the invoked method signature and encoded parameters
nonce
optional
string
Nonce of the transaction. You can let Rockside manage it or specify the nonce you want to use.
gasprice
optional
string
Gasprice used for each paid gas.
gas
optional
string
Gas provided for the transaction execution. Unused gas is returned.
Response
200: OK
{
"txhash": "0xb317b54b42bcdcc2bcf8ae96e3dc9463142422175dff85ff9e3de211f83ff4a0"
}

Example:

curl -X POST \
https://api.rockside.io/ethereum/ropsten/transaction \
-H 'apikey: YOUR_API_KEY'
-d '{"from":"YOUR_ADDRESS", "to":"0x98f7e7e45dd584d1b24883db1e565cc4b46e6605", "value":"0x0"}'

Response:

{
"transaction_hash": "0xb317b54b42bcdcc2bcf8ae96e3dc9463142422175dff85ff9e3de211f83ff4a0"
}

External Owned Accounts (EOA)

Manage external owned account with Rockside. The private key is securely stored on your Rockside Wallet.

Required to have ethers to send transaction.

External Owned Account are available on all Ethereum networks.

post
Create EOA Account

https://api.rockside.io/ethereum/eoa
Create an account (EOA) on your rockside wallet. Those accounts will need ether to send transaction.
Request
Response
Request
Headers
apikey
required
string
Your API key is available on Rockside Dashboard.
Response
200: OK
{
"address": "0x273e3d3ae721f0137d16cbd168c495e70e046dd4"
}

Example:

curl -X POST \
https://api.rockside.io/ethereum/eoa \
-H 'Content-Length: 0' \
-H 'apikey: YOUR_API_KEY'

Response:

{
"address": "0x297634F1433Ef10162E2986760b7D4880c3F0247"
}

get
List EOA Accounts

https://api.rockside.io/ethereum/eoa
List all your rockside wallet accounts (EOA).
Request
Response
Request
Headers
apikey
required
string
Your API key is available on Rockside Dashboard.
Response
200: OK
[
"0x60d44d28c826cff5d05ee57526e20103cdac1c9a",
"0x642aa2e540bb7172c487d5e2c315ad81b27070af",
"0x55f42ec257a6ec1b77735f5c9428d954e36c62c2",
"0xfb56d1a1ec09c9dac3870db4ab9516e646f167fc"
]

Example:

curl -X GET \
https://api.rockside.io/ethereum/eoa \
-H 'apikey: YOUR_API_KEY'

Response:

[
"0x60d44d28c826cff5d05ee57526e20103cdac1c9a",
"0x642aa2e540bb7172c487d5e2c315ad81b27070af",
"0x55f42ec257a6ec1b77735f5c9428d954e36c62c2",
"0x72b63625000c08087d33445ef55baceb4be65d67"
]

If you are using External Owned Account, your account need to have ethers to pay gas fees.

Relayable identity contract

You can use Rockside to deploy an identity contract and authorize an External Owned Account that you manage on your side. Then you can use Rockside as a relay to support transaction fees. To relay your transaction, you must sign your transaction using the authorized account and provide a signed hash containing your transaction parameters.

post
Deploy Relayable identity Contract

https://api.rockside.io/ethereum/:network/contracts/relayableidentity
Request
Response
Request
Path Parameters
network
required
string
Available network are "ropsten", "mainnet", "poanetwork"
Headers
apikey
required
string
Your API KEY is available on Rockside Dashboard
Body Parameters
account
required
string
Public address of an external owned account that will be authorized to send transaction with the deployed contract account.
Response
200: OK

Example:

curl -X POST \
https://api.rockside.io/ethereum/ropsten/contracts/relayableidentity \
-H 'apikey: YOUR_API_KEY' \
-d '{"account": "0xbeEd6fd5407D63f178D39c21c1BC9A770bE9BfF4"}'

Response:

{
"address": "0x60d44d28c826cff5d05ee57526e20103cdac1c9a"
"transaction_hash":"0xa51fdb4b79c45fbe9bf6df5a822814f6ad47bf9dfad4bb2b59745b2968c1d38e"
}

post
Relay transaction

https://api.rockside.io/ethereum/:network/contracts/relayableidentity/:contract_address/relayExecute
Request
Response
Request
Path Parameters
contract_address
required
string
Address of your bouncer contract.
network
required
string
Available network are "ropsten", "mainnet", "poanetwork"
Headers
apikey
required
string
Your API key is available on Rockside Dashboard
Body Parameters
from
required
string
Address of the EOA that is used to sign transactions params.
to
required
string
Destination address of the transaction.
value
optional
string
Amount (in hexa) of ether you want to send.
data
optional
string
Hash of the invoked method signature and encoded params.
signature
required
string
A hash signed with the EOA authorized on the bouncer proxy contract. It contains all parameters of the transaction ( from, to, value, data, contract account nonce)
Response
200: OK

Example:

curl -X POST \
https://api.rockside.io/ethereum/ropsten/contracts/relayableidentity/CONTRACT_ADDRESS/relayExecute \
-H 'apikey: YOUR_API_KEY' \
-d '{"from":"FROM_ADDRESS", "to":"TO_ADDRESS", "value":"0x0", "signature":"SIGNED_PARAMETERS"}'

Response:

{
"transaction_hash": "0xb317b54b42bcdcc2bcf8ae96e3dc9463142422175dff85ff9e3de211f83ff4a0"
}

post
Get Nonce

https://api.rockside.io/ethereum/:network/contracts/relayableidentity/:contract_address/nonce
Request
Response
Request
Path Parameters
contract_address
required
string
address of your bouncer contract
network
required
string
available network are "ropsten", "mainnet", "poanetwork
Headers
apikey
required
string
Your APIKEY is available on Rockside Dashboard
Body Parameters
account
optional
string
The public address of the EOA that will be authorized on the contract
Response
200: OK

Example

curl -X POST \
https://api.rockside.io/ethereum/ropsten/contracts/relayableidentity/CONTRACT_ADDRESS/nonce \
-d '{"account":"PUBLIC_ADDRESS_OF_YOUR_EOA"}'\
-H 'Content-Type: application/json' \
-H 'apikey: YOUR_APIKEY'

Response:

{
"nonce": "53"
}