Repository: trustwallet/blockatlas
Pull request #1435 (2021-03-08 07:42:53)

[Collectible] Add transfer fee for ERC1155
Example response
```json
{
    "total": 1,
    "docs": [
        {
            "id": "0xfaafdc07907ff5120a76b34b731b278c38d6043c-50885195465617482451405971989000287583881951901222610090265392862391101829115",
            "collection_id": "binance",
            "token_id": "50885195465617482451405971989000287583881951901222610090265392862391101829115",
            "contract_address": "0xfaafdc07907ff5120a76b34b731b278c38d6043c",
            "category": "Binance",
            "image_url": "https://lh3.googleusercontent.com/f1xmGDsCx3CpsTHOYa9pD0SX1cyPoUxH7NyNCQnpgnxHKptHELgjxF4mQGLs5VbZX0wgUGF15o9nyxLppvBmayjE=s250",
            "external_link": "https://www.binance.com/en/blog/411120468693135360/Earn-a-Guaranteed-Binance-NFT--HO-HO-HODL-Binance-Collectibles-Series-1",
            "provider_link": "https://opensea.io/assets/0xfaafdc07907ff5120a76b34b731b278c38d6043c/50885195465617482451405971989000287583881951901222610090265392862391101829115",
            "type": "ERC1155",
            "description": "A limited edition NFT that was minted to celebrate Binance’s third anniversary on July 14th, 2020.",
            "coin": 60,
            "name": "#BinanceTurns3",
            "nft_version": "",
            "transfer_fee": {
                "asset": "c60_t0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c",
                "amount": "0"
            }
        }
    ],
    "status": true
}
```

codecov[bot]: # [Codecov](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=h1) Report
> Merging [#1435](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=desc) (3694cb6) into [master](https://codecov.io/gh/trustwallet/blockatlas/commit/6d823522bac8fa28ea98d39fc699a37b38fc6d22?el=desc) (6d82352) will **decrease** coverage by `0%`.
> The diff coverage is `7%`.

[![Impacted file tree graph](https://codecov.io/gh/trustwallet/blockatlas/pull/1435/graphs/tree.svg?width=650&height=150&src=pr&token=jnrjoEQAqv)](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=tree)

```diff
@@          Coverage Diff           @@
##           master   #1435   +/-   ##
======================================
- Coverage      43%     42%   -1%     
======================================
  Files         146     146           
  Lines        4055    4066   +11     
======================================
  Hits         1744    1744           
- Misses       2151    2161   +10     
- Partials      160     161    +1     
```


| [Impacted Files](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [platform/binance/stake.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1435/diff?src=pr&el=tree#diff-cGxhdGZvcm0vYmluYW5jZS9zdGFrZS5nbw==) | `0% <0%> (ø)` | |
| [platform/tezos/baker.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1435/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdGV6b3MvYmFrZXIuZ28=) | `65% <0%> (ø)` | |
| [platform/ethereum/opensea/collection.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1435/diff?src=pr&el=tree#diff-cGxhdGZvcm0vZXRoZXJldW0vb3BlbnNlYS9jb2xsZWN0aW9uLmdv) | `73% <25%> (-6%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=footer). Last update [6d82352...962ea1e](https://codecov.io/gh/trustwallet/blockatlas/pull/1435?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Patch:
diff --git a/config.yml b/config.yml
index fe8ff2c..008f305 100644
--- a/config.yml
+++ b/config.yml
@@ -197,7 +197,7 @@ harmony:
   api: https://api.s0.t.hmny.io
 
 kava:
-  api: https://kava.data.kava.io
+  api: https://api.kava.io
 
 polkadot:
   api: https://polkadot.subscan.io/api
diff --git a/go.mod b/go.mod
index 887b716..85ed610 100644
--- a/go.mod
+++ b/go.mod
@@ -27,8 +27,8 @@ require (
 	github.com/stretchr/testify v1.7.0
 	github.com/swaggo/gin-swagger v1.3.0
 	github.com/swaggo/swag v1.7.0
-	github.com/trustwallet/golibs v0.1.5
-	github.com/trustwallet/golibs/network v0.0.0-20210222000450-7376c687b4e9
+	github.com/trustwallet/golibs v0.1.8
+	github.com/trustwallet/golibs/network v0.0.0-20210302024139-c340cb937103
 	golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392
 	golang.org/x/net v0.0.0-20210119194325-5f4716e94777 // indirect
 	golang.org/x/sys v0.0.0-20210217105451-b926d437f341 // indirect
diff --git a/go.sum b/go.sum
index 88c5d53..5814240 100644
--- a/go.sum
+++ b/go.sum
@@ -60,7 +60,6 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
 github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
-github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7 h1:6ejg6Lkk8dskcM7wQ28gONkukbQkM4qpj4RnYbpFzrI=
 github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y=
 github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e h1:6JKvHHt396/qabvMhnhUZvWaHZzfVfldxE60TK8YLhg=
 github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ=
@@ -152,7 +151,6 @@ github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaW
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
 github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
@@ -283,11 +281,9 @@ github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgx
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU=
 github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8=
 github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/magefile/mage v1.10.0 h1:3HiXzCUY12kh9bIuyXShaVe529fJfyqoVM42o/uom2g=
 github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
 github.com/magefile/mage v1.11.0 h1:C/55Ywp9BpgVVclD3lRnSYCwXTYxmSppIgLeDYlNuls=
 github.com/magefile/mage v1.11.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
@@ -349,7 +345,6 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK
 github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -357,7 +352,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8=
 github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
 github.com/prometheus/client_golang v0.9.4 h1:Y8E/JaaPbmFSW2V81Ab/d8yZFYQQGbni1b1jPcG9Y6A=
 github.com/prometheus/client_golang v0.9.4/go.mod h1:oCXIBxdI62A4cR6aTRJCgetEjecSIYzOEaeAn4iYEpM=
@@ -365,12 +359,10 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM=
 github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY=
 github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
@@ -393,7 +385,6 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
 github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
-github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
 github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 github.com/sirupsen/logrus v1.8.0 h1:nfhvjKcUMhBMVqbKHJlk5RPrrfYr/NMo3692g0dwfWU=
 github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A=
@@ -419,13 +410,11 @@ github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo=
 github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
@@ -438,12 +427,11 @@ github.com/swaggo/swag v1.5.1/go.mod h1:1Bl9F/ZBpVWh22nY0zmYyASPO1lI/zIwRDrpZU+t
 github.com/swaggo/swag v1.7.0 h1:5bCA/MTLQoIqDXXyHfOpMeDvL9j68OY/udlK4pQoo4E=
 github.com/swaggo/swag v1.7.0/go.mod h1:BdPIL73gvS9NBsdi7M1JOxLvlbfvNRaBP8m6WT6Aajo=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/trustwallet/golibs v0.0.35 h1:VqWInO5s4Zg6XyCmqro8/xrEViOedZ3oYtBq/kn4fBg=
 github.com/trustwallet/golibs v0.0.35/go.mod h1:VI0APImKAYxvJ8MnMD6aHSKvnArXUd3NgNEghX5P+K8=
-github.com/trustwallet/golibs v0.1.5 h1:8kMIWrU38a1Rfl9kLXo0egN+PBtSXr78T2sc+UpJ4Q8=
-github.com/trustwallet/golibs v0.1.5/go.mod h1:SQ3mijAuOTX9GRyaqph3NY2ox04JD5WQ6PkWqX2NB8w=
-github.com/trustwallet/golibs/network v0.0.0-20210222000450-7376c687b4e9 h1:OEmmVI2SDcwy1vS3C3rS3oj0zUZQnrbLixPWtpmL9Uk=
-github.com/trustwallet/golibs/network v0.0.0-20210222000450-7376c687b4e9/go.mod h1:LDMLFnOnwmC30WuCCIJ56TWeXxwCVcrMFJYeC6GEnxY=
+github.com/trustwallet/golibs v0.1.8 h1:g/c2RY8XZxOjoT8ZaXUS1X7zeaXvYuy3IJScqZcwMeA=
+github.com/trustwallet/golibs v0.1.8/go.mod h1:SQ3mijAuOTX9GRyaqph3NY2ox04JD5WQ6PkWqX2NB8w=
+github.com/trustwallet/golibs/network v0.0.0-20210302024139-c340cb937103 h1:RQVyaTFRRu37c+1kj+O2Z18doNAHOElMh8Q+/DrQi0I=
+github.com/trustwallet/golibs/network v0.0.0-20210302024139-c340cb937103/go.mod h1:LDMLFnOnwmC30WuCCIJ56TWeXxwCVcrMFJYeC6GEnxY=
 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
 github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
 github.com/ugorji/go v1.1.13 h1:nB3O5kBSQGjEQAcfe1aLUYuxmXdFKmYgBZhY32rQb6Q=
diff --git a/platform/cosmos/mocks/validator.json b/platform/cosmos/mocks/validator.json
index 8bb377c..ce86167 100644
--- a/platform/cosmos/mocks/validator.json
+++ b/platform/cosmos/mocks/validator.json
@@ -1,25 +1,26 @@
 {
   "operator_address": "cosmosvaloper1lktjhnzkpkz3ehrg8psvmwhafg56kfss3q3t8m",
-  "consensus_pubkey": "cosmosvalconspub1zcjduepqelcwpat987h9yq0ck6g9fsc8t0mththk547gwvk0w4wnkpl0stnspr3hdc",
-  "jailed": false,
-  "status": 2,
-  "tokens": "1557750969185",
-  "delegator_shares": "1557750969185.000000000000000000",
+  "consensus_pubkey": {
+    "type": "tendermint/PubKeyEd25519",
+    "value": "z/Dg9WU/rlIB+LaQVMMHW/a7rvalfIcyz3VdOwfvguc="
+  },
+  "status": 3,
+  "tokens": "597103578752",
+  "delegator_shares": "597103578752.000000000000000000",
   "description": {
     "moniker": "Umbrella ☔",
     "identity": "A530AC4D75991FE2",
     "website": "https://umbrellavalidator.com",
     "details": "One of the winners of Cosmos Game of Stakes, and HackAtom3."
   },
-  "unbonding_height": "0",
   "unbonding_time": "1970-01-01T00:00:00Z",
   "commission": {
     "commission_rates": {
       "rate": "0.070400000000000000",
       "max_rate": "1.000000000000000000",
-      "max_change_rate": "0.100000000000000000",
-      "update_time": "2019-08-05T07:10:23.689753607Z"
-    }
+      "max_change_rate": "0.100000000000000000"
+    },
+    "update_time": "2020-09-01T18:40:38.071399488Z"
   },
   "min_self_delegation": "1"
 }
diff --git a/platform/cosmos/stake.go b/platform/cosmos/stake.go
index 9b3cf49..c667412 100644
--- a/platform/cosmos/stake.go
+++ b/platform/cosmos/stake.go
@@ -154,7 +154,7 @@ func NormalizeUnbondingDelegations(delegations []UnbondingDelegation, validators
 func normalizeValidator(v Validator, p Pool, inflation float64) (validator blockatlas.Validator) {
 	reward := CalculateAnnualReward(p, inflation, v)
 	return blockatlas.Validator{
-		Status: v.Status == 2,
+		Status: v.Status == 3,
 		ID:     v.Address,
 		Details: blockatlas.StakingDetails{
 			Reward:        blockatlas.StakingReward{Annual: reward},
diff --git a/platform/ethereum/opensea/collection.go b/platform/ethereum/opensea/collection.go
index 3e9f16b..b202988 100644
--- a/platform/ethereum/opensea/collection.go
+++ b/platform/ethereum/opensea/collection.go
@@ -2,6 +2,8 @@ package opensea
 
 import (
 	"github.com/trustwallet/blockatlas/pkg/blockatlas"
+	"github.com/trustwallet/golibs/asset"
+	"github.com/trustwallet/golibs/coin"
 	"github.com/trustwallet/golibs/types"
 )
 
@@ -58,7 +60,7 @@ func NormalizeCollectiblePage(collectibles []Collectible, coinIndex uint) (page
 }
 
 func NormalizeCollectible(c Collectible, coinIndex uint) types.Collectible {
-	return types.Collectible{
+	collectible := types.Collectible{
 		ID:              blockatlas.GenCollectibleId(c.AssetContract.Address, c.TokenId),
 		CollectionID:    c.Collection.Slug,
 		TokenID:         c.TokenId,
@@ -73,4 +75,11 @@ func NormalizeCollectible(c Collectible, coinIndex uint) types.Collectible {
 		Coin:            coinIndex,
 		Version:         c.AssetContract.Version,
 	}
+	if c.FeeToken != nil {
+		collectible.TransferFee = &types.CollectibleTransferFee{
+			Asset:  asset.BuildID(coin.ETHEREUM, c.FeeToken.Address),
+			Amount: c.TransferFee,
+		}
+	}
+	return collectible
 }
diff --git a/platform/ethereum/opensea/mocks/opensea_collectible.json b/platform/ethereum/opensea/mocks/opensea_collectible.json
index 4fff8c0..137029c 100644
--- a/platform/ethereum/opensea/mocks/opensea_collectible.json
+++ b/platform/ethereum/opensea/mocks/opensea_collectible.json
@@ -19,6 +19,17 @@
       "name": "Age of Rust",
       "external_url": "https://opensea.io/"
     },
-    "permalink": "https://opensea.io/assets/0xfaafdc07907ff5120a76b34b731b278c38d6043c/54277541829991970107421667568590323026590803461896874578610080514640537714688"
+    "permalink": "https://opensea.io/assets/0xfaafdc07907ff5120a76b34b731b278c38d6043c/54277541829991970107421667568590323026590803461896874578610080514640537714688",
+    "transfer_fee_payment_token": {
+      "id": 18,
+      "symbol": "ENJ",
+      "address": "0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c",
+      "image_url": "https://lh3.googleusercontent.com/l9kffrrCmJQ4rmUONIKoV2tx1cQr3ejM2oKhtg08njtUo11tCCwmvTVgA2wD3akBIoMTdepIwrc62e105rRtmin6",
+      "name": "Enjin Token",
+      "decimals": 18,
+      "eth_price": "0.000950396392036",
+      "usd_price": "1.610000000000000098"
+    },
+    "transfer_fee": "0"
   }
 ]
diff --git a/platform/ethereum/opensea/model.go b/platform/ethereum/opensea/model.go
index 1d63b22..0f00276 100644
--- a/platform/ethereum/opensea/model.go
+++ b/platform/ethereum/opensea/model.go
@@ -25,6 +25,10 @@ type PrimaryAssetContract struct {
 	Url         string      `json:"external_link"`
 }
 
+type TransferFeeToken struct {
+	Address string `json:"address"`
+}
+
 type DisplayData struct {
 	Images []string `json:"images"`
 }
@@ -43,6 +47,10 @@ type Collectible struct {
 	Permalink       string                 `json:"permalink"`
 	Description     string                 `json:"description"`
 	Collection      CollectibleCollections `json:"collection"`
+
+	// only available for ERC1155
+	FeeToken    *TransferFeeToken `json:"transfer_fee_payment_token,omitempty"`
+	TransferFee string            `json:"transfer_fee,omitempty"`
 }
 
 type CollectibleCollections struct {
diff --git a/services/tokenindexer/api.go b/services/tokenindexer/api.go
index 72c5025..0e563b8 100644
--- a/services/tokenindexer/api.go
+++ b/services/tokenindexer/api.go
@@ -51,7 +51,7 @@ func (i Instance) GetTokensByAddress(r GetTokensByAddressRequest) (GetTokensByAd
 }
 
 func normalize(dbAssets []models.Asset) blockatlas.ResultsResponse {
-	var result []types.Asset
+	result := make([]types.Asset, 0)
 	for _, a := range dbAssets {
 		asset := types.Asset{
 			Id:       a.Asset,


Test patch:
diff --git a/platform/ethereum/opensea/collection_test.go b/platform/ethereum/opensea/collection_test.go
index 494842e..c2beb00 100644
--- a/platform/ethereum/opensea/collection_test.go
+++ b/platform/ethereum/opensea/collection_test.go
@@ -61,6 +61,10 @@ var (
 		Description:     "Rustbits are the main token of use within the Age of Rust game universe. You need Rustbits to not only play Age of Rust, but also to purchase in-game cryptoitems as well. Rustbits are radioactive rust scraped off of hulls of abandoned ships that are in orbit around a hidden planet, which is also a gas giant. The planet is so radioactive, it damages ships and kills anyone that gets close to it. Getting bits of rust off of ships is highly rare and prized.",
 		Coin:            60,
 		Name:            "Rustbits",
+		TransferFee: &types.CollectibleTransferFee{
+			Asset:  "c60_t0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c",
+			Amount: "0",
+		},
 	}
 )